Commit 7b9c30b8 authored by Yann Garcia's avatar Yann Garcia
Browse files

Bug fixed in meep-iot_test

parent c10f1cf1
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -581,6 +581,12 @@ func convertDeviceInfoToIotMgr(dev DeviceInfo) (device tm.DeviceInfo) {
		ClientCertificate:        dev.ClientCertificate,
		Enabled:                  dev.Enabled,
	}
	if len(dev.DeviceMetadata) != 0 {
		device.DeviceMetadata = make([]tm.KeyValuePair, len(dev.DeviceMetadata))
		for i, k := range dev.DeviceMetadata {
			device.DeviceMetadata[i] = tm.KeyValuePair{Key: k.Key, Value: k.Value}
		} // End of 'for' statement
	}
	// FIXME FSCOM Add missing fileds (pointers & arrays)
	//log.Debug("convertDeviceInfoToIotMgr: device: ", device)

+20 −18
Original line number Diff line number Diff line
@@ -1238,25 +1238,21 @@ func convertDeviceInfosFromSbi_with_filter(devicesList []sbi.DeviceInfo, filter
			} else if filter[1] == "requestedUserTransportId" {
				process_it = item.RequestedUserTransportId == filter[2]
			} // FIXME FSCOM Add support of deviceMetadata & requestedMecTrafficRule
		} else if filter[0] == "neq" {
			if filter[1] == "gpsi" {
				process_it = item.Gpsi != filter[2]
			} else if filter[1] == "Msisdn" {
				process_it = item.Gpsi != filter[2]
			} else if filter[1] == "deviceId" {
				process_it = item.DeviceId != filter[2]
			} else if filter[1] == "requestedIotPlatformId" {
				process_it = item.RequestedIotPlatformId != filter[2]
			} else if filter[1] == "requestedUserTransportId" {
				process_it = item.RequestedUserTransportId != filter[2]
			} // FIXME FSCOM Add support of deviceMetadata & requestedMecTrafficRule
		}
		if process_it {
			var device = DeviceInfo{
				DeviceAuthenticationInfo: item.DeviceAuthenticationInfo,
				Gpsi:                     item.Gpsi,
				Pei:                      item.Pei,
				Supi:                     item.Supi,
				Msisdn:                   item.Msisdn,
				Imei:                     item.Imei,
				Imsi:                     item.Imsi,
				Iccid:                    item.Iccid,
				DeviceId:                 item.DeviceId,
				RequestedIotPlatformId:   item.RequestedIotPlatformId,
				RequestedUserTransportId: item.RequestedUserTransportId,
				ClientCertificate:        item.ClientCertificate,
				Enabled:                  item.Enabled,
			}
			// FIXME FSCOM Add missing fileds (pointers & arrays)
			devices = append(devices, device)
			devices = append(devices, convertDeviceInfoFromSbi(item))
		} else {
			log.Debug("convertDeviceInfosFromSbi_with_filter: skip ", item)
		}
@@ -1282,8 +1278,14 @@ func convertDeviceInfoToSbi(dev DeviceInfo) (device sbi.DeviceInfo) {
		ClientCertificate:        dev.ClientCertificate,
		Enabled:                  dev.Enabled,
	}
	if len(dev.DeviceMetadata) != 0 {
		device.DeviceMetadata = make([]sbi.KeyValuePair, len(dev.DeviceMetadata))
		for i, k := range dev.DeviceMetadata {
			device.DeviceMetadata[i] = sbi.KeyValuePair{Key: k.Key, Value: k.Value}
		} // End of 'for' statement
	}
	// FIXME FSCOM Add missing fileds (pointers & arrays)
	//log.Debug("convertDeviceInfosFromSbi: devices: ", devices)
	//log.Debug("convertDeviceInfoToSbi: devices: ", devices)

	return device
}
+84 −11
Original line number Diff line number Diff line
@@ -25,13 +25,10 @@ import (
	"net/http"
	"net/http/httptest"
	"os"
	//"strconv"
	"strings"
	"testing"
	"time"

	//meepiotmgr "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-iot-mgr"

	log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger"
	//	met "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-metrics"
	mod "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-model"
@@ -1184,9 +1181,21 @@ func TestRegistereddevicesPOST(t *testing.T) {
	/******************************
	 * request body section
	 ******************************/
	requestedIotPlatformId := iotPlatformInfo.IotPlatformId
	deviceMetadata := make([]KeyValuePair, 2)
	deviceMetadata[0] = KeyValuePair{
		Key:   "Key1",
		Value: "Value1",
	}
	deviceMetadata[1] = KeyValuePair{
		Key:   "Key2",
		Value: "Value2",
	}
	var device = DeviceInfo{
		RequestedIotPlatformId: expected_requestedIotPlatformId,
		DeviceId:               expected_requestedIotPlatformId,
		DeviceMetadata:         deviceMetadata,
		RequestedIotPlatformId: requestedIotPlatformId,
		DeviceId:               requestedIotPlatformId,
		Imsi:                   "12345",
		Enabled:                true,
	}
	fmt.Println("Create a device: ", device)
@@ -1375,9 +1384,9 @@ func TestRegistereddevicesGET_withFiltering(t *testing.T) {
		t.Fatalf("unexpected error: %v", err)
	}

	// Filter on RequestedUserTransportId and its complement
	// Filter on DeviceId and its complement
	queryParam := make(map[string]string)
	queryParam["filter"] = "(eq," + expected_devices[2].RequestedUserTransportId + ", requestedUserTransportId)"
	queryParam["filter"] = "(eq,deviceId," + expected_devices[1].DeviceId + ")" // Only DeviceId 1
	rr, err := sendRequest(http.MethodGet, "/registered_devices", nil, nil, queryParam, nil, http.StatusOK, RegistereddevicesGET)
	if err != nil {
		t.Fatalf(err.Error())
@@ -1389,10 +1398,72 @@ func TestRegistereddevicesGET_withFiltering(t *testing.T) {
		t.Fatalf(err.Error())
	}
	fmt.Println("Respone: resp: ", resp)
	if len(resp) != 1 {
	if len(resp) != 1 { // Only DeviceId 1
		t.Errorf("Response length mismatch")
	}
	if !validate_device_info(resp[0], expected_devices[1]) {
		t.Errorf("Response mismatch")
	}
	queryParam["filter"] = "(neq,deviceId," + expected_devices[1].DeviceId + ")" // DeviceId 1 is excluded
	rr, err = sendRequest(http.MethodGet, "/registered_devices", nil, nil, queryParam, nil, http.StatusOK, RegistereddevicesGET)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("Respone: rr: ", rr)
	resp = nil
	err = json.Unmarshal([]byte(rr), &resp)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("Respone: resp: ", resp)
	if len(resp) != 2 {
		t.Errorf("Response length mismatch")
	}
	if !validate_device_info(resp[0], expected_devices[0]) && !validate_device_info(resp[0], expected_devices[2]) { // DeviceId 1 is excluded
		t.Errorf("Response mismatch")
	}
	if !validate_device_info(resp[1], expected_devices[0]) && !validate_device_info(resp[1], expected_devices[2]) { // DeviceId 1 is excluded
		t.Errorf("Response mismatch")
	}

	// Filter on RequestedUserTransportId and its complement
	queryParam["filter"] = "(eq,requestedUserTransportId," + expected_devices[2].RequestedUserTransportId + ")" // Only DeviceId 2
	rr, err = sendRequest(http.MethodGet, "/registered_devices", nil, nil, queryParam, nil, http.StatusOK, RegistereddevicesGET)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("Respone: rr: ", rr)
	resp = nil
	err = json.Unmarshal([]byte(rr), &resp)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("Respone: resp: ", resp)
	if len(resp) != 1 { // Only DeviceId 2
		t.Errorf("Response length mismatch")
	}
	if !validate_device_info(resp[0], expected_device[2]) {
	if !validate_device_info(resp[0], expected_devices[2]) {
		t.Errorf("Response mismatch")
	}
	queryParam["filter"] = "(neq,requestedUserTransportId," + expected_devices[2].RequestedUserTransportId + ")" // DeviceId 2 is excluded
	rr, err = sendRequest(http.MethodGet, "/registered_devices", nil, nil, queryParam, nil, http.StatusOK, RegistereddevicesGET)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("Respone: rr: ", rr)
	resp = nil
	err = json.Unmarshal([]byte(rr), &resp)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("Respone: resp: ", resp)
	if len(resp) != 2 {
		t.Errorf("Response length mismatch")
	}
	if !validate_device_info(resp[0], expected_devices[0]) && !validate_device_info(resp[0], expected_devices[1]) { // DeviceId 2 is excluded
		t.Errorf("Response mismatch")
	}
	if !validate_device_info(resp[1], expected_devices[0]) && !validate_device_info(resp[1], expected_devices[1]) { // DeviceId 2 is excluded
		t.Errorf("Response mismatch")
	}

@@ -1400,7 +1471,6 @@ func TestRegistereddevicesGET_withFiltering(t *testing.T) {
	/******************************
	 * back to initial state section
	 ******************************/
	_ = delete_device(expected_device.DeviceId)
	_ = delete_registered_iot_platforms(iotPlatformInfo.IotPlatformId)
	terminateScenario()
}
@@ -1626,7 +1696,7 @@ func create_device(iotPlatformInfo IotPlatformInfo) (device DeviceInfo, err erro
	return device, nil
}

func create_set_device(iotPlatformInfo IotPlatformInfo) (devices []DeviceInfo, err error) {
func create_set_of_devices(iotPlatformInfo IotPlatformInfo) (devices []DeviceInfo, err error) {
	requestedIotPlatformId := iotPlatformInfo.IotPlatformId
	deviceMetadata := make([]KeyValuePair, 2)
	deviceMetadata[0] = KeyValuePair{
@@ -1696,6 +1766,9 @@ func delete_device(deviceId string) (err error) {
}

func validate_device_info(expected_device DeviceInfo, received_deviceResp DeviceInfo) bool {
	fmt.Println(">>> validate_device_info: expected_device: ", expected_device)
	fmt.Println(">>> validate_device_info: received_deviceResp: ", received_deviceResp)

	if expected_device.DeviceId != received_deviceResp.DeviceId {
		fmt.Println("received_deviceResp.DeviceId != DeviceId")
		return false
+1 −1
Original line number Diff line number Diff line
@@ -1025,7 +1025,7 @@ paths:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
      - managementn
      - management
      summary: The PUT method is used to update the value of the characteristics that
        can be set on a sensor or on a group of sensors
      description: "This method shall support the URI query parameters, request and\
+0 −7
Original line number Diff line number Diff line
@@ -88,13 +88,6 @@ type ImplSpecificInfo struct {
	DownlinkTopics []string
}

// ETSI GS MEC 046 V3.1.1 (2024-04) Clause 6.2.1 Type: SensorDiscoveryInfo
type SensorCharacteristic struct {
	CharacteristicName          string
	CharacteristicValue         string
	CharacteristicUnitOfMeasure *string
}

type TrafficRuleDescriptor struct {
	TrafficRuleId string
	FilterType    string
Loading