public async Task GetDevice_TooManyActiveAccounts_UnhappyPath() { var cwsDevice = new DeviceResponseModel() { TRN = TRNHelper.MakeTRN(_deviceUid, TRNHelper.TRN_DEVICE), DeviceName = _deviceName, SerialNumber = _serialNumber }; var cwsDeviceClient = new Mock <ICwsDeviceClient>(); cwsDeviceClient.Setup(pr => pr.GetDeviceBySerialNumber(It.IsAny <string>(), _customHeaders)) .ReturnsAsync(cwsDevice); var cwsDeviceAccountList = new DeviceAccountListResponseModel() { Accounts = new List <DeviceAccountResponseModel>() { new DeviceAccountResponseModel() { TRN = TRNHelper.MakeTRN(_customerUid, TRNHelper.TRN_ACCOUNT), AccountName = "the customer name", RelationStatus = _relationStatus, TccDeviceStatus = _tccDeviceStatus }, new DeviceAccountResponseModel() { TRN = TRNHelper.MakeTRN(Guid.NewGuid().ToString(), TRNHelper.TRN_ACCOUNT), AccountName = "the other customer name", RelationStatus = _relationStatus, TccDeviceStatus = _tccDeviceStatus } } }; cwsDeviceClient.Setup(pr => pr.GetAccountsForDevice(It.IsAny <Guid>(), _customHeaders)) .ReturnsAsync(cwsDeviceAccountList); var getDeviceBySerialExecutor = RequestExecutorContainerFactory.Build <GetDeviceBySerialExecutor> (_logger, _configStore, _serviceExceptionHandler, headers: _customHeaders, cwsDeviceClient: cwsDeviceClient.Object); var response = await getDeviceBySerialExecutor.ProcessAsync(new DeviceSerial(_serialNumber)) as DeviceDescriptorSingleResult; Assert.NotNull(response); Assert.Equal(103, response.Code); Assert.Equal("There is >1 active account for the device in cws", response.Message); Assert.NotNull(response.DeviceDescriptor); Assert.Equal(103, response.DeviceDescriptor.Code); Assert.Null(response.DeviceDescriptor.CustomerUID); Assert.Equal(_deviceUid, response.DeviceDescriptor.DeviceUID); Assert.Equal(_deviceName, response.DeviceDescriptor.DeviceName); Assert.Equal(_serialNumber, response.DeviceDescriptor.SerialNumber); Assert.Equal("UNKNOWN", response.DeviceDescriptor.RelationStatus.ToString().ToUpper()); Assert.Equal("Unknown", response.DeviceDescriptor.TccDeviceStatus.ToString()); Assert.Null(response.DeviceDescriptor.ShortRaptorAssetId); }
public Task <DeviceAccountListResponseModel> GetAccountsForDevice(Guid deviceUid, IHeaderDictionary customHeaders = null) { log.LogDebug($"{nameof(GetAccountsForDevice)} Mock: deviceUid {deviceUid}"); var deviceAccountListResponseModel = new DeviceAccountListResponseModel() { Accounts = new List <DeviceAccountResponseModel>() { new DeviceAccountResponseModel() { TRN = TRNHelper.MakeTRN(Guid.NewGuid().ToString(), TRNHelper.TRN_DEVICE), AccountName = "an account name", RelationStatus = RelationStatusEnum.Active, TccDeviceStatus = TCCDeviceStatusEnum.Pending } } }; log.LogDebug($"{nameof(GetAccountsForDevice)} Mock: deviceAccountListResponseModel {JsonConvert.SerializeObject(deviceAccountListResponseModel)}"); return(Task.FromResult(deviceAccountListResponseModel)); }
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); }); }