Newer
Older
/*
* Copyright (c) 2025 The AdvantEDGE Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on ance "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
"testing"
log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger"
)
const tmName = "meep-iot"
const tmNamespace = "sandboxtest"
fmt.Println("--- ", t.Name())
log.MeepTextLogInit(t.Name())
// Invalid Connector
fmt.Println("Invalid SSS Asset Manager")
tm, err := NewSssMgr("", tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
tm, err = NewSssMgr(tmName, tmNamespace, "", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
if err == nil || tm != nil {
t.Fatalf("Binding protocol not set")
}
tm, err = NewSssMgr(tmName, tmNamespace, "MQTT", "", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
t.Fatalf("Host not set")
}
tm, err = NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "", "laboai-acme-ic-cse", nil, nil, nil)
if err == nil || tm != nil {
t.Fatalf("Host id not set")
}
tm, err = NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "", nil, nil, nil)
if err == nil || tm != nil {
t.Fatalf("CSE name not set")
fmt.Println("Create valid SSS Asset Manager")
tm, err = NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
t.Fatalf("Failed to create SSS Asset Manager")
t.Fatalf("Failed to cleanup SSS Asset Manager")
fmt.Println("Create valid SSS Asset Manager")
tm, err = NewSssMgr(tmName, tmNamespace, "REST_HTTP", "172.29.10.56", 31110, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
t.Fatalf("Failed to create SSS Asset Manager")
t.Fatalf("Failed to cleanup SSS Asset Manager")
// func TestPopulateDevicesPerIotPlatformsHttp(t *testing.T) {
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "REST_HTTP", "", 0, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// err = tm.populateDevicesPerIotPlatforms()
// if err != nil {
// t.Fatalf(err.Error())
// }
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
// tm = nil
// }
// func TestSensorDiscoveryInfoAllHttp(t *testing.T) {
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "REST_HTTP", "", 0, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// sensors, err := tm.SensorDiscoveryInfoAll()
// if err != nil {
// t.Fatalf(err.Error())
// }
// fmt.Println("len=", len(sensors))
// fmt.Println("sensors", sensors)
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
// tm = nil
// }
// func TestGetSensorHttp(t *testing.T) {
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "REST_HTTP", "lab-oai.etsi.org", 31110, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// sensors, err := tm.SensorDiscoveryInfoAll()
// if err != nil {
// t.Fatalf(err.Error())
// }
// for _, v := range sensors {
// fmt.Println("v", v)
// fmt.Println("TypeOf(v)", reflect.TypeOf(v))
// sensor, err := tm.GetSensor(v.SensorIdentifier)
// if !validate_sensor_discovery_info(v, sensor) {
// t.Fatalf(err.Error())
// }
// }
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
// tm = nil
// }
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "REST_HTTP", "lab-oai.etsi.org", 31110, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// var new_sensor = SensorDiscoveryInfo{
// SensorIdentifier: "12345",
// SensorType: "AE",
// SensorPosition: nil,
// IotPlatformId: "7feaadbb0400",
// // Verify content
// fmt.Println(">>> validate_sensor_discovery_info_1: expected_sensor: ", new_sensor)
// fmt.Println(">>> validate_sensor_discovery_info_1: received_sensor: ", sensor)
// // if sensor.SensorIdentifier != new_sensor.SensorIdentifier { // FIXME FSCOM SensorIdentifier will be replaced by oneM2M ri
// // t.Fatalf("received_sensor.SensorIdentifier != SensorIdentifier")
// // }
// if sensor.SensorType != new_sensor.SensorType {
// t.Fatalf("received_sensor.SensorType != SensorType")
// if sensor.IotPlatformId != new_sensor.IotPlatformId {
// t.Fatalf("received_sensor.IotPlatformId != IotPlatformId")
// if len(sensor.SensorCharacteristicList) == 0 {
// t.Fatalf("received_sensor.SensorCharacteristicList shall not be empty")
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
fmt.Println("--- ", t.Name())
log.MeepTextLogInit(t.Name())
// Valid Connector
fmt.Println("Create valid SSS Asset Manager")
tm, err := NewSssMgr(tmName, tmNamespace, "REST_HTTP", "lab-oai.etsi.org", 31110, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
t.Fatalf("Failed to create SSS Asset Manager")
var sensor_ae = SensorDiscoveryInfo{
SensorIdentifier: "CMyAE",
SensorType: "AE",
SensorPosition: nil,
IotPlatformId: "7feaadbb0400",
}
new_sensor_ae, err := tm.OneM2M_create(sensor_ae, "")
t.Fatalf("Failed to create new AE sensor")
}
// Verify content
fmt.Println(">>> validate_sensor_discovery_info_1: expected_sensor: ", sensor_ae)
fmt.Println(">>> validate_sensor_discovery_info_1: received_sensor: ", new_sensor_ae)
// if sensor.SensorIdentifier != new_sensor.SensorIdentifier { // FIXME FSCOM SensorIdentifier will be replaced by oneM2M ri
// t.Fatalf("received_sensor.SensorIdentifier != SensorIdentifier")
// }
if new_sensor_ae.SensorType != new_sensor_ae.SensorType {
t.Fatalf("received_sensor.SensorType != SensorType")
}
if new_sensor_ae.IotPlatformId != sensor_ae.IotPlatformId {
t.Fatalf("received_sensor.IotPlatformId != IotPlatformId")
}
if len(new_sensor_ae.SensorCharacteristicList) == 0 {
t.Fatalf("received_sensor.SensorCharacteristicList shall not be empty")
var sensor_cnt = SensorDiscoveryInfo{
SensorIdentifier: "CMyCNT",
SensorType: "CNT",
SensorPosition: nil,
IotPlatformId: "7feaadbb0400",
}
// sensor_cnt.SensorCharacteristicList = make([]SensorCharacteristic, 1)
// sensor_cnt.SensorCharacteristicList[0] = SensorCharacteristic{CharacteristicName: "con", CharacteristicValue: "OFF"}
sensorPath := new_sensor_ae.SensorIdentifier
new_sensor_cnt, err := tm.OneM2M_create(sensor_cnt, sensorPath)
if err != nil {
t.Fatalf("Failed to create new sensor")
}
if new_sensor_cnt.SensorType != sensor_cnt.SensorType {
t.Fatalf("received_sensor.SensorType != SensorType")
}
if new_sensor_cnt.IotPlatformId != sensor_cnt.IotPlatformId {
t.Fatalf("received_sensor.IotPlatformId != IotPlatformId")
}
if len(new_sensor_cnt.SensorCharacteristicList) == 0 {
t.Fatalf("received_sensor.SensorCharacteristicList shall not be empty")
}
err = tm.OneM2M_Delete(new_sensor_cnt)
if err != nil {
t.Fatalf("Failed to create new sensor")
}
err = tm.OneM2M_Delete(new_sensor_ae)
if err != nil {
t.Fatalf("Failed to create new sensor")
t.Fatalf("Failed to cleanup SSS Asset Manager")
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "REST_HTTP", "lab-oai.etsi.org", 31110, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// var new_sensor = SensorDiscoveryInfo{
// SensorIdentifier: "12345",
// SensorType: "AE",
// SensorPosition: nil,
// IotPlatformId: "7feaadbb0400",
// }
// sensor, err := oneM2M_create(tm, new_sensor)
// if err != nil {
// t.Fatalf("Failed to create new sensor: ", err.Error())
// }
// err = tm.OneM2M_Delete(sensor)
// if err != nil {
// t.Fatalf("Failed to create new sensor: ", err.Error())
// }
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
// func TestPopulateDevicesPerIotPlatformsMqtt(t *testing.T) {
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// err = tm.populateDevicesPerIotPlatforms()
// if err != nil {
// t.Fatalf(err.Error())
// }
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
// tm = nil
// }
// func TestSensorDiscoveryInfoAllMqtt(t *testing.T) {
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// err = tm.populateDevicesPerIotPlatforms()
// if err != nil {
// t.Fatalf(err.Error())
// }
// sensors, err := tm.SensorDiscoveryInfoAll()
// if err != nil {
// t.Fatalf(err.Error())
// }
// fmt.Println("sensors: ", sensors)
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
// }
// func TestGetSensorMqtt(t *testing.T) {
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// sensors, err := tm.SensorDiscoveryInfoAll()
// if err != nil {
// t.Fatalf(err.Error())
// }
// for _, v := range sensors {
// fmt.Println("v", v)
// fmt.Println("TypeOf(v)", reflect.TypeOf(v))
// sensor, err := tm.GetSensor(v.SensorIdentifier)
// if !validate_sensor_discovery_info(v, sensor) {
// t.Fatalf(err.Error())
// }
// }
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// }
// var new_sensor = SensorDiscoveryInfo{
// SensorIdentifier: "12345",
// SensorType: "AE",
// SensorPosition: nil,
// IotPlatformId: "7feaadbb0400",
// }
// sensor, err := tm.OneM2M_create(new_sensor, "")
// t.Fatalf("Failed to create new sensor")
// }
// // Verify content
// fmt.Println(">>> validate_sensor_discovery_info_1: expected_sensor: ", new_sensor)
// fmt.Println(">>> validate_sensor_discovery_info_1: received_sensor: ", sensor)
// // if sensor.SensorIdentifier != new_sensor.SensorIdentifier { // FIXME FSCOM SensorIdentifier will be replaced by oneM2M ri
// // t.Fatalf("received_sensor.SensorIdentifier != SensorIdentifier")
// // }
// if sensor.SensorType != new_sensor.SensorType {
// t.Fatalf("received_sensor.SensorType != SensorType")
// if sensor.IotPlatformId != new_sensor.IotPlatformId {
// t.Fatalf("received_sensor.IotPlatformId != IotPlatformId")
// }
// if len(sensor.SensorCharacteristicList) == 0 {
// t.Fatalf("received_sensor.SensorCharacteristicList shall not be empty")
// }
// _ = tm.OneM2M_Delete(sensor)
// // Cleanup
// err = tm.DeleteSssMgr()
// tm = nil
// }
// func TestOneM2M_deleteMQTT(t *testing.T) {
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// var new_sensor = SensorDiscoveryInfo{
// SensorIdentifier: "12345",
// SensorType: "AE",
// SensorPosition: nil,
// IotPlatformId: "7feaadbb0400",
// t.Fatalf("Failed to create new sensor: " + err.Error())
// t.Fatalf("Failed to create new sensor: " + err.Error())
// }
// // Cleanup
// err = tm.DeleteSssMgr()
// if err != nil {
// t.Fatalf("Failed to cleanup SSS Asset Manager")
// }
// func TestVaidateOneM2MNotificationServer(t *testing.T) {
// fmt.Println("--- ", t.Name())
// log.MeepTextLogInit(t.Name())
// // Valid Connector
// fmt.Println("Create valid SSS Asset Manager")
// tm, err := NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
// if err != nil || tm == nil {
// t.Fatalf("Failed to create SSS Asset Manager")
// tm.init()
// fmt.Println("Waiting for 2 minutes to do curl request: curl -v http://mec-platform.etsi.org:33122/sbxykqjr17/mep1/sens/v1 ")
// // Cleanup
// err = tm.DeleteSssMgr()
func oneM2M_create(tm *SssMgr, sensor SensorDiscoveryInfo, path string) (sensorResp SensorDiscoveryInfo, err error) {
sensorResp, err = tm.OneM2M_create(sensor, path)
if err != nil {
return sensorResp, err
}
return sensorResp, nil
}
func validate_sensor_discovery_info(expected_sensor SensorDiscoveryInfo, received_sensor SensorDiscoveryInfo) bool {
fmt.Println(">>> validate_sensor_discovery_info: expected_sensor: ", expected_sensor)
fmt.Println(">>> validate_sensor_discovery_info: received_sensor: ", received_sensor)
if expected_sensor.SensorIdentifier != received_sensor.SensorIdentifier {
fmt.Println("received_sensor.SensorIdentifier != SensorIdentifier")
return false
if len(expected_sensor.SensorPropertyList) != len(received_sensor.SensorPropertyList) {
fmt.Println("len(received_sensor.SensorPropertyList) != len(SensorPropertyList)")
} else if !reflect.DeepEqual(expected_sensor.SensorPropertyList, received_sensor.SensorPropertyList) {
fmt.Println("received_sensor.SensorPropertyList != SensorPropertyList")
if len(expected_sensor.SensorCharacteristicList) != len(received_sensor.SensorCharacteristicList) {
fmt.Println("len(received_sensor.SensorCharacteristicList) != len(SensorCharacteristicList)")
} else if !reflect.DeepEqual(expected_sensor.SensorCharacteristicList, received_sensor.SensorCharacteristicList) {
fmt.Println("received_sensor.SensorCharacteristicList != SensorCharacteristicList")
}
// TODO To be continued
return true
}