Skip to content

Commit 10f3ef9

Browse files
feat: improve comparing complex types
use better comparing functions for structures and arrays. Use implemented equals() for the strucutres. Tests requires now filling the structures with some data other than default, cause before setting new value and expected notification it is checked for equality (not set in that case). With new compaision that checks the content not addres of object it needs to have some values.
1 parent 13eaaf9 commit 10f3ef9

File tree

6 files changed

+90
-27
lines changed

6 files changed

+90
-27
lines changed

rules.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ features:
1717
target: "{{camel .Module.Name}}_api/build.gradle"
1818
- source: "api/additions.gradle.tpl"
1919
target: "{{camel .Module.Name}}_api/additions.gradle"
20+
- source: "api/testhelper.java.tpl"
21+
target: "{{camel .Module.Name}}_api/src/main/java/{{camel .Module.Name}}/{{camel .Module.Name}}_api/{{Camel .Module.Name}}TestHelper.java"
2022
- match: interface
2123
prefix: "{{camel .Module.Name}}/{{camel .Module.Name}}_api/src/main/java/{{camel .Module.Name}}/{{camel .Module.Name}}_api/"
2224
documents:

templates/android/client/client.java.tpl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import java.util.concurrent.CompletableFuture;
3939
import java.util.concurrent.ExecutionException;
4040
import java.util.function.Consumer;
4141
import java.util.concurrent.atomic.AtomicInteger;
42+
import java.util.Arrays;
4243

4344

4445
{{- define "getDataFromBundle"}}
@@ -317,7 +318,13 @@ public class {{Camel .Interface.Name }}Client extends Abstract{{Camel .Interface
317318
public void set{{Camel .Name}}({{javaParam "" .}})
318319
{
319320
Log.i(TAG, "request set{{Camel .Name}} called "+ {{javaVar . }});
321+
{{- if .IsArray }}
322+
if (! Arrays.equals(m_{{javaVar .}}, {{javaVar .}}))
323+
{{- else if or .IsPrimitive (eq .KindType "enum") }}
320324
if (m_{{javaVar .}} != {{javaVar .}})
325+
{{- else }}
326+
if (! m_{{javaVar .}}.equals({{javaVar .}}))
327+
{{- end }}
321328
{
322329
Message msg = new Message();
323330
msg.what = {{$InterfaceName}}MessageType.PROP_{{Camel .Name}}.getValue();
@@ -332,7 +339,13 @@ public class {{Camel .Interface.Name }}Client extends Abstract{{Camel .Interface
332339
public void on{{Camel .Name}}({{javaParam "" .}})
333340
{
334341
Log.i(TAG, "value received from service for {{Camel .Name}} ");
342+
{{- if .IsArray }}
343+
if (! Arrays.equals(m_{{javaVar .}}, {{javaVar .}}))
344+
{{- else if or .IsPrimitive (eq .KindType "enum") }}
335345
if (m_{{javaVar .}} != {{javaVar .}})
346+
{{- else }}
347+
if (! m_{{javaVar .}}.equals({{javaVar .}}))
348+
{{- end }}
336349
{
337350
m_{{javaVar .}} = {{javaVar .}};
338351
fire{{Camel .Name}}Changed({{javaVar .}});

templates/android/client/clienttest.java.tpl

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//TODO later// Copyright Epic Games, Inc. All Rights Reserved.
2-
32
package {{camel .Module.Name}}.{{camel .Module.Name}}_android_client;
43

54
import {{camel .Module.Name}}.{{camel .Module.Name}}_android_client.{{Camel .Interface.Name }}Client;
@@ -9,6 +8,7 @@ import {{camel .Module.Name}}.{{camel .Module.Name}}_android_client.{{Camel .Int
98
import {{camel .Module.Name}}.{{camel .Module.Name}}_api.{{Camel .Name}};
109
import {{camel .Module.Name}}.{{camel .Module.Name}}_android_messenger.{{Camel .Name}}Parcelable;
1110
{{- end }}
11+
import {{camel .Module.Name}}.{{camel .Module.Name}}_api.{{Camel .Module.Name}}TestHelper;
1212
{{- range .Module.Enums }}
1313
import {{camel .Module.Name}}.{{camel .Module.Name}}_api.{{Camel .Name}};
1414
import {{camel .Module.Name}}.{{camel .Module.Name}}_android_messenger.{{Camel .Name}}Parcelable;
@@ -81,16 +81,17 @@ interface I{{Camel .Interface.Name }}ClientMessageGetter
8181

8282
{{- define "prepareTestValue"}}
8383
{{- if .IsArray }}
84-
{{javaElementType "" .}} element{{ javaVar .}} = {{javaTestValue "" . }};
85-
// todo fill if is struct
86-
{{javaReturn "" . }} test{{ javaVar .}} = new {{javaReturn "" . }}{element{{ javaVar .}}} ;
87-
{{- else if (.IsPrimitive) }}
84+
{{- if or (.IsPrimitive) (eq .KindType "enum")}}
85+
{{javaType "" .}} test{{ javaVar .}} = new {{javaElementType "" .}}[1];
86+
test{{ javaVar .}}[0] = {{javaTestValue "" . }};
87+
{{- else }}
88+
{{javaElementType "" .}}Array test{{ javaVar .}} = new {{javaElementType "" .}}Array[1];
89+
test{{ javaVar .}}[0] = {{Camel .Schema.Module.Name}}TestHelper.makeTest{{Camel (javaElementType "" . )}}();
90+
{{- end}}
91+
{{- else if or (.IsPrimitive) (eq .KindType "enum") }}
8892
{{javaReturn "" . }} test{{ javaVar .}} = {{javaTestValue "" . }};
89-
{{- else if eq .KindType "enum"}}
90-
{{javaReturn "" . }} test{{ javaVar .}} = {{javaTestValue "" . }};
9193
{{- else }}
92-
{{javaReturn "" . }} test{{ javaVar .}} = {{javaTestValue "" . }};
93-
//TODO fill fields
94+
{{javaReturn "" . }} test{{ javaVar .}} = {{Camel .Schema.Module.Name}}TestHelper.makeTest{{Camel (javaType "" . )}}();
9495
{{- end }}
9596
{{- end }}
9697

@@ -277,20 +278,23 @@ public class {{Camel .Interface.Name }}ClientTest
277278
{{- range .Params }}
278279
{{- template "prepareTestValue" .}}
279280
{{- end }}
281+
280282
{{- if not .Return.IsVoid }}
281283
{{- if .Return.IsArray }}
282-
{{javaElementType "" .Return}} elementForResult = {{javaTestValue "" .Return }};
283-
// todo fill if is struct
284-
{{javaReturn "" .Return }} expectedResult = new {{javaReturn "" .Return }}{elementForResult} ;
285-
{{- else if (.Return.IsPrimitive) }}
286-
{{javaReturn "" .Return }} expectedResult = {{javaTestValue "" .Return }};
287-
{{- else if eq .Return.KindType "enum"}}
284+
{{- if or (.Return.IsPrimitive) (eq .Return.KindType "enum")}}
285+
{{javaType "" .Return }} expectedResult = new {{javaElementType "" .Return }}[1];
286+
expectedResult[0] = {{javaTestValue "" .Return }};
287+
{{- else }}
288+
{{javaElementType "" .Return }}Array expectedResult = new {{javaElementType "" .Return }}Array[1];
289+
expectedResult[0] = {{Camel .Return.Schema.Module.Name}}TestHelper.makeTest{{Camel (javaElementType "" .Return )}}();
290+
{{- end}}
291+
{{- else if or ( .Return.IsPrimitive) (eq .Return.KindType "enum") }}
288292
{{javaReturn "" .Return }} expectedResult = {{javaTestValue "" .Return }};
289293
{{- else }}
290-
{{javaReturn "" .Return }} expectedResult = {{javaTestValue "" .Return }};
291-
//TODO fill fields
294+
{{javaReturn "" .Return }} expectedResult = {{Camel .Return.Schema.Module.Name}}TestHelper.makeTest{{Camel (javaType "" .Return )}}();
292295
{{- end }}
293-
{{- end }}
296+
{{- end }}
297+
294298
AtomicBoolean receivedResp = new AtomicBoolean(false);
295299
{{javaAsyncReturn "" .Return}} resFuture = testedClient.{{camel .Name}}Async({{- range $idx, $p :=.Params }}{{- if $idx}}, {{ end -}}test{{javaVar $p}}{{- end }});
296300

templates/android/service/serviceadaptertest.java.tpl

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {{camel .Module.Name}}.{{camel .Module.Name}}_android_service.{{Camel .In
2222
import {{camel .Module.Name}}.{{camel .Module.Name}}_api.{{Camel .Name}};
2323
import {{camel .Module.Name}}.{{camel .Module.Name}}_android_messenger.{{Camel .Name}}Parcelable;
2424
{{- end }}
25+
import {{camel .Module.Name}}.{{camel .Module.Name}}_api.{{Camel .Module.Name}}TestHelper;
2526
{{- range .Module.Enums }}
2627
import {{camel .Module.Name}}.{{camel .Module.Name}}_api.{{Camel .Name}};
2728
import {{camel .Module.Name}}.{{camel .Module.Name}}_android_messenger.{{Camel .Name}}Parcelable;
@@ -333,18 +334,20 @@ public class {{Camel .Interface.Name }}ServiceAdapterTest
333334
{{- template "prepareTestValue" .}}
334335
{{- template "putTestDataIntoBundle" .}}
335336
{{- end}}
337+
336338
{{- if not .Return.IsVoid }}
337339
{{- if .Return.IsArray }}
338-
{{javaElementType "" .Return}} elementForResult = {{javaTestValue "" .Return }};
339-
// todo fill if is struct
340-
{{javaReturn "" .Return }} returnedValue = new {{javaReturn "" .Return }}{elementForResult} ;
341-
{{- else if (.Return.IsPrimitive) }}
342-
{{javaReturn "" .Return }} returnedValue = {{javaTestValue "" .Return }};
343-
{{- else if eq .Return.KindType "enum"}}
340+
{{- if or (.Return.IsPrimitive) (eq .Return.KindType "enum")}}
341+
{{javaType "" .Return }} returnedValue = new {{javaElementType "" .Return }}[1];
342+
returnedValue[0] = {{javaTestValue "" .Return }};
343+
{{- else }}
344+
{{javaElementType "" .Return }}Array returnedValue = new {{javaElementType "" .Return }}Array[1];
345+
returnedValue[0] = {{Camel .Return.Schema.Module.Name}}TestHelper.makeTest{{Camel (javaElementType "" .Return )}}();
346+
{{- end}}
347+
{{- else if or (.Return.IsPrimitive) (eq .Return.KindType "enum") }}
344348
{{javaReturn "" .Return }} returnedValue = {{javaTestValue "" .Return }};
345349
{{- else }}
346-
{{javaReturn "" .Return }} returnedValue = {{javaTestValue "" .Return }};
347-
//TODO fill fields
350+
{{javaReturn "" .Return }} returnedValue = {{Camel .Return.Schema.Module.Name}}TestHelper.makeTest{{Camel (javaType "" .Return )}}();
348351
{{- end }}
349352

350353

templates/api/testhelper.java.tpl

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package {{camel .Module.Name}}.{{camel .Module.Name}}_api;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import java.util.Objects;
5+
import java.util.Arrays;
6+
7+
8+
public class {{Camel .Module.Name}}TestHelper
9+
{
10+
{{- range .Module.Structs}}
11+
12+
static public {{Camel .Name}} makeTest{{Camel .Name}}()
13+
{
14+
{{Camel .Name}} testStruct = new {{Camel .Name}}();
15+
{{- range .Fields }}
16+
{{- if .IsArray}}
17+
testStruct.{{camel .Name}} = new {{javaElementType "" . }}[1];
18+
{{- if or (.IsPrimitive) (eq .KindType "enum") }}
19+
testStruct.{{camel .Name}}[0] = {{ javaTestValue "" . }};
20+
{{- else }}
21+
testStruct.{{camel .Name}}[0] = makeTest{{Camel (javaElementType "" .) }}();
22+
{{- end }}
23+
{{- else if or (.IsPrimitive) (eq .KindType "enum") }}
24+
testStruct.{{camel .Name}} = {{javaTestValue "" . }};
25+
{{- else }}
26+
testStruct.{{camel .Name}} = makeTest{{javaType "" . }}();
27+
{{- end}}
28+
{{- end }}
29+
return testStruct;
30+
}
31+
32+
{{- end}}
33+
34+
}

templates/stub/implservice.java.tpl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import java.util.concurrent.ExecutorService;
2222
import java.util.concurrent.Executors;
2323
import java.util.concurrent.atomic.AtomicInteger;
2424
import java.util.function.Supplier;
25+
import java.util.Arrays;
2526

2627

2728
public class {{Camel .Interface.Name}}Service extends Abstract{{Camel .Interface.Name}} {
@@ -43,8 +44,14 @@ public class {{Camel .Interface.Name}}Service extends Abstract{{Camel .Interface
4344
@Override
4445
public void set{{Camel .Name}}({{javaParam "" .}})
4546
{
46-
Log.i(TAG, "request set{{Camel .Name}} callede ");
47+
Log.i(TAG, "request set{{Camel .Name}} called ");
48+
{{- if .IsArray }}
49+
if (! Arrays.equals(m_{{javaVar .}}, {{javaVar .}}))
50+
{{- else if or .IsPrimitive (eq .KindType "enum") }}
4751
if (m_{{javaVar .}} != {{javaVar .}})
52+
{{- else }}
53+
if (! m_{{javaVar .}}.equals({{javaVar .}}))
54+
{{- end}}
4855
{
4956
m_{{javaVar .}} = {{javaVar .}};
5057
on{{Camel .Name}}Changed(m_{{javaVar .}});

0 commit comments

Comments
 (0)