def handleSystemPerformanceMessage(self, data: SystemPerformanceData) -> bool: logging("handleSystemPerformanceMessage method is called...") self._handleUpstreamTransmission( ResourceNameEnum.CDA_SYSTEM_PERF_MSG_RESOURCE, DataUtil.systemPerformanceDataToJson(self, data)) pass
def handleSystemPerformanceMessage(self, data: SystemPerformanceData) -> bool: """ handle the SystemPerformanceMessage @return bool """ logging.info( "[CDA_CALLBACK]----->>>The handleSystemPerformanceMessage method is being called" ) spmJson = DataUtil.systemPerformanceDataToJson(self, data) self._handleUpstreamTransmission( ResourceNameEnum.CDA_SYSTEM_PERF_MSG_RESOURCE, spmJson)
class DataUtilTest(unittest.TestCase): """ This test case class contains very basic unit tests for DataUtil. It should not be considered complete, but serve as a starting point for the student implementing additional functionality within their Programming the IoT environment. """ @classmethod def setUpClass(self): logging.basicConfig( format='%(asctime)s:%(module)s:%(levelname)s:%(message)s', level=logging.DEBUG) logging.info("Testing DataUtil class...") encodeToUtf8 = False self.dataUtil = DataUtil(encodeToUtf8) self.adName = "FooBar ActuatorData" self.sdName = "FooBar SensorData" self.spdName = "FooBar SystemPerformanceData" self.sampleSpdJson = "{\"name\": \"" + self.spdName + "\", \"timeStamp\":\"2019.01.16 21:32:34.123123\",\"cpuUtil\":0.0,\"diskUtil\":0.0,\"memUtil\":0.0}" self.sampleAdJson = "{\"name\": \"" + self.adName + "\", \"timeStamp\": \"2019-01-20 15:38:35.123123\", \"hasError\": false, \"command\": 0, \"statusCode\": 0, \"stateData\": null, \"curValue\": 0.0}" self.sampleSdJson = "{\"name\": \"" + self.sdName + "\", \"timeStamp\":\"2019.01.16 21:32:34.123123\",\"curValue\":0.0}" def setUp(self): logging.info("================================================") logging.info("DataUtil test execution...") logging.info("================================================") pass def tearDown(self): pass # @unittest.skip("Ignore for now.") def testActuatorDataConversionsFromJson(self): logging.info("\n\n----- [ActuatorData Conversions from JSON] -----") adObj1 = self.dataUtil.jsonToActuatorData(self.sampleAdJson) adObj1Str = self.dataUtil.actuatorDataToJson(adObj1) adObj2 = self.dataUtil.jsonToActuatorData(adObj1Str) logging.info("Sample JSON: " + str(self.sampleAdJson)) logging.info("JSON to ActuatorData: " + str(adObj1)) logging.info("ActuatorData back to JSON: " + str(adObj1Str)) self.assertEqual(self.adName, adObj1.getName()) self.assertEqual(self.adName, adObj2.getName()) self.assertEqual(adObj1.getTimeStamp(), adObj2.getTimeStamp()) # @unittest.skip("Ignore for now.") def testActuatorDataConversionsFromObject(self): logging.info("\n\n----- [JSON Conversions from ActuatorData] -----") adName = "FooBar2 Actuator" adObj1 = ActuatorData() adObj1.setName(adName) adObj1Str = self.dataUtil.actuatorDataToJson(adObj1) adObj2 = self.dataUtil.jsonToActuatorData(adObj1Str) adObj2Str = self.dataUtil.actuatorDataToJson(adObj2) logging.info("Sample ActuatorData: " + str(adObj1)) logging.info("ActuatorData to JSON: " + str(adObj1Str)) logging.info("JSON back to ActuatorData: " + str(adObj2)) logging.info("ActuatorData back to JSON: " + str(adObj2Str)) self.assertEqual(adName, adObj1.getName()) self.assertEqual(adObj1.getName(), adObj2.getName()) self.assertEqual(adObj1.getTimeStamp(), adObj2.getTimeStamp()) self.assertEqual(adObj1Str, adObj2Str) # @unittest.skip("Ignore for now.") def testSensorDataConversionsFromJson(self): logging.info("\n\n----- [SensorData Conversions from JSON] -----") sdObj1 = self.dataUtil.jsonToSensorData(self.sampleSdJson) sdObj1Str = self.dataUtil.sensorDataToJson(sdObj1) sdObj2 = self.dataUtil.jsonToSensorData(sdObj1Str) logging.info("Sample JSON: " + str(self.sampleSdJson)) logging.info("JSON to SensorData: " + str(sdObj1)) logging.info("SensorData back to JSON: " + str(sdObj1Str)) self.assertEqual(self.sdName, sdObj1.getName()) self.assertEqual(self.sdName, sdObj2.getName()) self.assertEqual(sdObj1.getTimeStamp(), sdObj2.getTimeStamp()) # @unittest.skip("Ignore for now.") def testSensorDataConversionsFromObject(self): logging.info("\n\n----- [JSON Conversions from SensorData] -----") sdName = "Foobar2 Sensor" sdObj1 = SensorData() sdObj1.setName(sdName) sdObj1Str = self.dataUtil.sensorDataToJson(sdObj1) sdObj2 = self.dataUtil.jsonToSensorData(sdObj1Str) sdObj2Str = self.dataUtil.sensorDataToJson(sdObj2) logging.info("Sample SensorData: " + str(sdObj1)) logging.info("SensorData to JSON: " + str(sdObj1Str)) logging.info("JSON back to SensorData: " + str(sdObj2)) logging.info("SensorData back to JSON: " + str(sdObj2Str)) self.assertEqual(sdName, sdObj1.getName()) self.assertEqual(sdObj1.getName(), sdObj2.getName()) self.assertEqual(sdObj1.getTimeStamp(), sdObj2.getTimeStamp()) self.assertEqual(sdObj1Str, sdObj2Str) # @unittest.skip("Ignore for now.") def testSystemPerformanceConversionsFromJson(self): logging.info( "\n\n----- [SystemPerformanceData Conversions from JSON] -----") spdObj1 = self.dataUtil.jsonToSystemPerformanceData(self.sampleSpdJson) spdObj1Str = self.dataUtil.systemPerformanceDataToJson(spdObj1) spdObj2 = self.dataUtil.jsonToSystemPerformanceData(spdObj1Str) logging.info("Sample JSON: " + str(self.sampleSpdJson)) logging.info("JSON to SystemPerformanceData: " + str(spdObj1)) logging.info("SystemPerformanceData back to JSON: " + str(spdObj1Str)) self.assertEqual(self.spdName, spdObj1.getName()) self.assertEqual(self.spdName, spdObj2.getName()) self.assertEqual(spdObj1.getTimeStamp(), spdObj2.getTimeStamp()) # @unittest.skip("Ignore for now.") def testSystemPerformanceDataConversionsFromObject(self): logging.info( "\n\n----- [JSON Conversions from SystemPerformanceData] -----") spdName = "Foobar2 SystemPerformanceData" spdObj1 = SystemPerformanceData() spdObj1.setName(spdName) spdObj1Str = self.dataUtil.systemPerformanceDataToJson(spdObj1) spdObj2 = self.dataUtil.jsonToSystemPerformanceData(spdObj1Str) spdObj2Str = self.dataUtil.systemPerformanceDataToJson(spdObj2) logging.info("Sample SystemPerformanceData: " + str(spdObj1)) logging.info("SystemPerformanceData to JSON: " + str(spdObj1Str)) logging.info("JSON back to SystemPerformanceData: " + str(spdObj2)) logging.info("SystemPerformanceData back to JSON: " + str(spdObj2Str)) self.assertEqual(spdName, spdObj1.getName()) self.assertEqual(spdObj1.getName(), spdObj2.getName()) self.assertEqual(spdObj1.getTimeStamp(), spdObj2.getTimeStamp()) self.assertEqual(spdObj1Str, spdObj2Str)
def handleSystemPerformanceMessage(self, data: SystemPerformanceData) -> bool: logging.info("handleSystemPerformanceMessage called") #translate sys perf data to json and set upstream du = DataUtil() self._handleUpstreamTransmission(ResourceNameEnum.CDA_SYSTEM_PERF_MSG_RESOURC.value, du.systemPerformanceDataToJson(data))