예제 #1
0
        public void GetDeviceBySerialNumberTest_UpperLower()
        {
            var          serialNumber         = (Guid.NewGuid().ToString()).ToLower();
            const string expectedDeviceId     = "trn::profilex:us-west-2:device:560c2a6c-6b7e-48d8-b1a5-e4009e2d4c97";
            const string expectedDeviceType   = "CB460";
            const string expectedDeviceName   = "The device Name";
            var          expectedSerialNumber = serialNumber.ToUpper();

            var deviceResponseModel = new DeviceResponseModel()
            {
                TRN = expectedDeviceId, DeviceType = expectedDeviceType, DeviceName = expectedDeviceName, SerialNumber = expectedSerialNumber
            };

            var route           = $"/devices/getDeviceWithSerialNumber";
            var queryParameters = new List <KeyValuePair <string, string> > {
                new KeyValuePair <string, string>("serialNumber", serialNumber.ToUpper())
            };
            var expectedUrl = $"{baseUrl}{route}?serialNumber={serialNumber.ToUpper()}";

            mockServiceResolution.Setup(m => m.ResolveRemoteServiceEndpoint(
                                            It.IsAny <string>(), It.IsAny <ApiType>(), It.IsAny <ApiVersion>(), route, queryParameters)).Returns(Task.FromResult(expectedUrl));

            MockUtilities.TestRequestSendsCorrectJson("Get device by serial number", mockWebRequest, null, expectedUrl, HttpMethod.Get, deviceResponseModel, async() =>
            {
                var client = ServiceProvider.GetRequiredService <ICwsDeviceClient>();
                var result = await client.GetDeviceBySerialNumber(serialNumber);

                Assert.NotNull(result);
                Assert.Equal(TRNHelper.ExtractGuidAsString(expectedDeviceId), result.Id);
                Assert.Equal(expectedDeviceType, result.DeviceType);
                Assert.Equal(expectedDeviceName, result.DeviceName);
                Assert.Equal(expectedSerialNumber, result.SerialNumber);
                return(true);
            });
        }
예제 #2
0
        public void GetDeviceByDeviceUidTest()
        {
            const string DeviceId             = "trn::profilex:us-west-2:device:560c2a6c-6b7e-48d8-b1a5-e4009e2d4c97";
            const string expectedDeviceId     = DeviceId;
            const string expectedDeviceType   = "CB460";
            const string expectedDeviceName   = "The device Name";
            const string expectedSerialNumber = "2002J032SW";

            var deviceResponseModel = new DeviceResponseModel()
            {
                TRN = expectedDeviceId, DeviceType = expectedDeviceType, DeviceName = expectedDeviceName, SerialNumber = expectedSerialNumber
            };

            var route       = $"/devices/{DeviceId}";
            var expectedUrl = $"{baseUrl}{route}";

            mockServiceResolution.Setup(m => m.ResolveRemoteServiceEndpoint(
                                            It.IsAny <string>(), It.IsAny <ApiType>(), It.IsAny <ApiVersion>(), route, It.IsAny <IList <KeyValuePair <string, string> > >())).Returns(Task.FromResult(expectedUrl));

            MockUtilities.TestRequestSendsCorrectJson("Get device by deviceUid", mockWebRequest, null, expectedUrl, HttpMethod.Get, deviceResponseModel, async() =>
            {
                var client = ServiceProvider.GetRequiredService <ICwsDeviceClient>();
                var result = await client.GetDeviceByDeviceUid(TRNHelper.ExtractGuid(DeviceId).Value);

                Assert.NotNull(result);
                Assert.Equal(TRNHelper.ExtractGuidAsString(expectedDeviceId), result.Id);
                Assert.Equal(expectedDeviceType, result.DeviceType);
                Assert.Equal(expectedDeviceName, result.DeviceName);
                Assert.Equal(expectedSerialNumber, result.SerialNumber);
                return(true);
            });
        }
예제 #3
0
        public void GetMyAccountsTest()
        {
            const string userId       = "trn::profilex:us-west-2:user:d79a392d-6513-46c1-baa1-75c537cf0c32";
            const string expectedId   = "trn::profilex:us-west-2:account:560c2a6c-6b7e-48d8-b1a5-e4009e2d4c97";
            const string expectedName = "Berthoud";
            const string route        = "/users/me/accounts";

            var accountListModel = new AccountListResponseModel
            {
                HasMore  = false,
                Accounts = new List <AccountResponseModel>()
                {
                    new AccountResponseModel()
                    {
                        TRN = expectedId, Name = expectedName, DeviceCount = 10, UserCount = 5, ProjectCount = 0
                    }
                }
            };

            var expectedUrl = $"{baseUrl}{route}";

            mockServiceResolution.Setup(m => m.ResolveRemoteServiceEndpoint(
                                            It.IsAny <string>(), It.IsAny <ApiType>(), It.IsAny <ApiVersion>(), route, It.IsAny <IList <KeyValuePair <string, string> > >())).Returns(Task.FromResult(expectedUrl));

            MockUtilities.TestRequestSendsCorrectJson("Get My Accounts", mockWebRequest, null, expectedUrl, HttpMethod.Get, accountListModel, async() =>
            {
                var client = ServiceProvider.GetRequiredService <ICwsAccountClient>();
                var result = await client.GetMyAccounts(TRNHelper.ExtractGuid(userId).Value);

                Assert.NotNull(result);
                Assert.False(result.HasMore);
                Assert.NotNull(result.Accounts);
                Assert.Single(result.Accounts);
                Assert.Equal(TRNHelper.ExtractGuidAsString(expectedId), result.Accounts[0].Id);
                Assert.Equal(expectedName, result.Accounts[0].Name);
                Assert.Equal(accountListModel.Accounts[0].DeviceCount, result.Accounts[0].DeviceCount);
                Assert.Equal(accountListModel.Accounts[0].UserCount, result.Accounts[0].UserCount);
                Assert.Equal(accountListModel.Accounts[0].ProjectCount, result.Accounts[0].ProjectCount);
                return(true);
            });
        }
예제 #4
0
        public void GetAccountsForDeviceTest()
        {
            const string deviceTrn          = "trn::profilex:us-west-2:device:560c2a6c-6b7e-48d8-b1a5-e4009e2d4c97";
            const string expectedAccountTrn = "trn::profilex:us-west-2:account:560c2a6c-6b7e-48d8-b1a5-e4009e2d4c97";

            var deviceAccountListResponseModel = new DeviceAccountListResponseModel
            {
                HasMore  = false,
                Accounts = new List <DeviceAccountResponseModel>()
                {
                    new DeviceAccountResponseModel()
                    {
                        TRN             = expectedAccountTrn,
                        AccountName     = "an account name",
                        RelationStatus  = RelationStatusEnum.Active,
                        TccDeviceStatus = TCCDeviceStatusEnum.Pending
                    }
                }
            };
            var route       = $"/devices/{deviceTrn}/accounts";
            var expectedUrl = $"{baseUrl}{route}?from=0&limit=20";

            mockServiceResolution.Setup(m => m.ResolveRemoteServiceEndpoint(
                                            It.IsAny <string>(), It.IsAny <ApiType>(), It.IsAny <ApiVersion>(), route, It.IsAny <IList <KeyValuePair <string, string> > >())).Returns(Task.FromResult(expectedUrl));

            MockUtilities.TestRequestSendsCorrectJson("Get accounts for a device", mockWebRequest, null, expectedUrl, HttpMethod.Get, deviceAccountListResponseModel, async() =>
            {
                var client = ServiceProvider.GetRequiredService <ICwsDeviceClient>();
                var result = await client.GetAccountsForDevice(TRNHelper.ExtractGuid(deviceTrn).Value);

                Assert.NotNull(result);
                Assert.False(result.HasMore);
                Assert.NotNull(result.Accounts);
                Assert.Single(result.Accounts);
                Assert.Equal(TRNHelper.ExtractGuidAsString(expectedAccountTrn), result.Accounts[0].Id);
                Assert.Equal(RelationStatusEnum.Active, result.Accounts[0].RelationStatus);
                return(true);
            });
        }
예제 #5
0
        public void ExtractGuidFromTRNAsStringTest(string expectedGuidString, string TRNtype, string userTRN)
        {
            var convertedGuidString = TRNHelper.ExtractGuidAsString(userTRN);

            Assert.Equal(expectedGuidString, convertedGuidString);
        }