Skip to content
onem2m-mgr_test.go 32.3 KiB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
/*
 * 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.
 */

package sssmgr
Yann Garcia's avatar
Yann Garcia committed

import (
	"fmt"
Yann Garcia's avatar
Yann Garcia committed
	"testing"

	log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger"
)

const tmName = "meep-iot"
const tmNamespace = "sandboxtest"

func TestNewSssMgr(t *testing.T) {
Yann Garcia's avatar
Yann Garcia committed
	fmt.Println("--- ", t.Name())
	log.MeepTextLogInit(t.Name())

	// Invalid Connector
	fmt.Println("Invalid SSS Asset Manager")
Yann Garcia's avatar
Yann Garcia committed
	tm, err := NewSssMgr("", tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
Yann Garcia's avatar
Yann Garcia committed
	if err == nil || tm != nil {
Yann Garcia's avatar
Yann Garcia committed
		t.Fatalf("Service name not set")
	}
Yann Garcia's avatar
Yann Garcia committed
	tm, err = NewSssMgr(tmName, tmNamespace, "", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
Yann Garcia's avatar
Yann Garcia committed
	if err == nil || tm != nil {
		t.Fatalf("Binding protocol not set")
	}
Yann Garcia's avatar
Yann Garcia committed
	tm, err = NewSssMgr(tmName, tmNamespace, "MQTT", "", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
Yann Garcia's avatar
Yann Garcia committed
	if err == nil || tm != nil {
Yann Garcia's avatar
Yann Garcia committed
		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")
Yann Garcia's avatar
Yann Garcia committed
	}

	// Valid Connector
	fmt.Println("Create valid SSS Asset Manager")
Yann Garcia's avatar
Yann Garcia committed
	tm, err = NewSssMgr(tmName, tmNamespace, "MQTT", "172.29.10.56", 1883, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
Yann Garcia's avatar
Yann Garcia committed
	if err != nil || tm == nil {
		t.Fatalf("Failed to create SSS Asset Manager")
Yann Garcia's avatar
Yann Garcia committed
	}
	// Cleanup
	err = tm.DeleteSssMgr()
Yann Garcia's avatar
Yann Garcia committed
	if err != nil {
		t.Fatalf("Failed to cleanup SSS Asset Manager")
Yann Garcia's avatar
Yann Garcia committed
	}
Yann Garcia's avatar
Yann Garcia committed
	tm = nil
Yann Garcia's avatar
Yann Garcia committed

	fmt.Println("Create valid SSS Asset Manager")
Yann Garcia's avatar
Yann Garcia committed
	tm, err = NewSssMgr(tmName, tmNamespace, "REST_HTTP", "172.29.10.56", 31110, "7feaadbb0400", "laboai-acme-ic-cse", nil, nil, nil)
Yann Garcia's avatar
Yann Garcia committed
	if err != nil || tm == nil {
		t.Fatalf("Failed to create SSS Asset Manager")
Yann Garcia's avatar
Yann Garcia committed
	}

	// Cleanup
	err = tm.DeleteSssMgr()
Yann Garcia's avatar
Yann Garcia committed
	if err != nil {
		t.Fatalf("Failed to cleanup SSS Asset Manager")
Yann Garcia's avatar
Yann Garcia committed
	}
Yann Garcia's avatar
Yann Garcia committed
	tm = nil
Yann Garcia's avatar
Yann Garcia committed
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)
	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
}

func TestOneM2M_createAEHttp(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)
	if err != nil || tm == nil {
		t.Fatalf("Failed to create SSS Asset Manager")
	}

	var sensor = SensorDiscoveryInfo{
		SensorIdentifier: "12345",
		SensorType:       "AE",
		SensorPosition:   nil,
		IotPlatformId:    "7feaadbb0400",
	}
	new_sensor, err := tm.OneM2M_create(sensor, "")
	if err != nil {
		t.Fatalf("Failed to create new sensor")
	}

	// Verify content
	if !validate_sensor_ae(sensor, new_sensor) {
		t.Fatalf("Failed to validate AE content")
	}

	_ = tm.OneM2M_Delete(new_sensor)

	// Cleanup
	err = tm.DeleteSssMgr()
	if err != nil {
		t.Fatalf("Failed to cleanup SSS Asset Manager")
	}
	tm = nil
Loading
Loading full blame…