Skip to content

Commit

Permalink
Add golden image unit test for java codegen
Browse files Browse the repository at this point in the history
  • Loading branch information
andy31415 committed Mar 21, 2023
1 parent 80baf11 commit a9e2f2b
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 0 deletions.
1 change: 1 addition & 0 deletions scripts/py_matter_idl/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ pw_python_package("matter_idl") {
"matter_idl/tests/outputs/several_clusters/bridge/SecondServer.h",
"matter_idl/tests/outputs/several_clusters/bridge/Third.h",
"matter_idl/tests/outputs/several_clusters/bridge/ThirdServer.h",
"matter_idl/tests/outputs/several_clusters/java/ClusterWriteMapping.java",
"matter_idl/tests/outputs/several_clusters/jni/FirstClient-ReadImpl.cpp",
"matter_idl/tests/outputs/several_clusters/jni/SecondClient-ReadImpl.cpp",
"matter_idl/tests/outputs/several_clusters/jni/ThirdClient-ReadImpl.cpp",
Expand Down
4 changes: 4 additions & 0 deletions scripts/py_matter_idl/matter_idl/tests/available_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ java-jni:
jni/MyClusterClient-ReadImpl.cpp: outputs/optional_argument/jni/MyClusterClient-ReadImpl.cpp
jni/MyClusterClient-InvokeSubscribeImpl.cpp: outputs/optional_argument/jni/MyClusterClient-InvokeSubscribeImpl.cpp

java-class:
inputs/several_clusters.matter:
java/chip/devicecontroller/ClusterWriteMapping.java: outputs/several_clusters/java/ClusterWriteMapping.java

bridge:
inputs/simple_attribute.matter:
bridge/BridgeClustersImpl.h: outputs/simple_attribute/bridge/BridgeClustersImpl.h
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package chip.devicecontroller;

import chip.clusterinfo.CommandParameterInfo;
import chip.clusterinfo.InteractionInfo;
import chip.devicecontroller.ChipClusters.DefaultClusterCallback;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

public class ClusterWriteMapping {
public Map<String, Map<String, InteractionInfo>> getWriteAttributeMap() {
Map<String, Map<String, InteractionInfo>> writeAttributeMap = new HashMap<>();
Map<String, InteractionInfo> writeFirstInteractionInfo = new LinkedHashMap<>();
Map<String, CommandParameterInfo> writeFirstSomeIntegerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
CommandParameterInfo firstsomeIntegerCommandParameterInfo =
new CommandParameterInfo(
"value",
Integer.class,
Integer.class
);
writeFirstSomeIntegerCommandParams.put(
"value",
firstsomeIntegerCommandParameterInfo
);
InteractionInfo writeFirstSomeIntegerAttributeInteractionInfo = new InteractionInfo(
(cluster, callback, commandArguments) -> {
((ChipClusters.FirstCluster) cluster).writeSomeIntegerAttribute(
(DefaultClusterCallback) callback,
(Integer) commandArguments.get("value")
);
},
() -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
writeFirstSomeIntegerCommandParams
);
writeFirstInteractionInfo.put("writeSomeIntegerAttribute", writeFirstSomeIntegerAttributeInteractionInfo);
writeAttributeMap.put("first", writeFirstInteractionInfo);
Map<String, InteractionInfo> writeSecondInteractionInfo = new LinkedHashMap<>();
writeAttributeMap.put("second", writeSecondInteractionInfo);
Map<String, InteractionInfo> writeThirdInteractionInfo = new LinkedHashMap<>();
Map<String, CommandParameterInfo> writeThirdSomeEnumCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
CommandParameterInfo thirdsomeEnumCommandParameterInfo =
new CommandParameterInfo(
"value",
Integer.class,
Integer.class
);
writeThirdSomeEnumCommandParams.put(
"value",
thirdsomeEnumCommandParameterInfo
);
InteractionInfo writeThirdSomeEnumAttributeInteractionInfo = new InteractionInfo(
(cluster, callback, commandArguments) -> {
((ChipClusters.ThirdCluster) cluster).writeSomeEnumAttribute(
(DefaultClusterCallback) callback,
(Integer) commandArguments.get("value")
);
},
() -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
writeThirdSomeEnumCommandParams
);
writeThirdInteractionInfo.put("writeSomeEnumAttribute", writeThirdSomeEnumAttributeInteractionInfo);
Map<String, CommandParameterInfo> writeThirdOptionsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
CommandParameterInfo thirdoptionsCommandParameterInfo =
new CommandParameterInfo(
"value",
Integer.class,
Integer.class
);
writeThirdOptionsCommandParams.put(
"value",
thirdoptionsCommandParameterInfo
);
InteractionInfo writeThirdOptionsAttributeInteractionInfo = new InteractionInfo(
(cluster, callback, commandArguments) -> {
((ChipClusters.ThirdCluster) cluster).writeOptionsAttribute(
(DefaultClusterCallback) callback,
(Integer) commandArguments.get("value")
);
},
() -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
writeThirdOptionsCommandParams
);
writeThirdInteractionInfo.put("writeOptionsAttribute", writeThirdOptionsAttributeInteractionInfo);
writeAttributeMap.put("third", writeThirdInteractionInfo);return writeAttributeMap;
}
}

0 comments on commit a9e2f2b

Please sign in to comment.