From a9e2f2b93e744e44746e5df6b1a826615170013b Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 21 Mar 2023 19:22:50 -0400 Subject: [PATCH] Add golden image unit test for java codegen --- scripts/py_matter_idl/BUILD.gn | 1 + .../matter_idl/tests/available_tests.yaml | 4 + .../java/ClusterWriteMapping.java | 86 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 scripts/py_matter_idl/matter_idl/tests/outputs/several_clusters/java/ClusterWriteMapping.java diff --git a/scripts/py_matter_idl/BUILD.gn b/scripts/py_matter_idl/BUILD.gn index 7e3254573e9cac..aa0ba2f7899288 100644 --- a/scripts/py_matter_idl/BUILD.gn +++ b/scripts/py_matter_idl/BUILD.gn @@ -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", diff --git a/scripts/py_matter_idl/matter_idl/tests/available_tests.yaml b/scripts/py_matter_idl/matter_idl/tests/available_tests.yaml index 944515314dfcf2..c1b253ec23f0f9 100644 --- a/scripts/py_matter_idl/matter_idl/tests/available_tests.yaml +++ b/scripts/py_matter_idl/matter_idl/tests/available_tests.yaml @@ -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 diff --git a/scripts/py_matter_idl/matter_idl/tests/outputs/several_clusters/java/ClusterWriteMapping.java b/scripts/py_matter_idl/matter_idl/tests/outputs/several_clusters/java/ClusterWriteMapping.java new file mode 100644 index 00000000000000..adae9aae1da991 --- /dev/null +++ b/scripts/py_matter_idl/matter_idl/tests/outputs/several_clusters/java/ClusterWriteMapping.java @@ -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> getWriteAttributeMap() { + Map> writeAttributeMap = new HashMap<>(); + Map writeFirstInteractionInfo = new LinkedHashMap<>(); + Map writeFirstSomeIntegerCommandParams = new LinkedHashMap(); + 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 writeSecondInteractionInfo = new LinkedHashMap<>(); + writeAttributeMap.put("second", writeSecondInteractionInfo); + Map writeThirdInteractionInfo = new LinkedHashMap<>(); + Map writeThirdSomeEnumCommandParams = new LinkedHashMap(); + 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 writeThirdOptionsCommandParams = new LinkedHashMap(); + 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; + } +}