public async Task UpdateVaultStatus_LinkNotRequired_StatusUnchanged(HesConnectionState hesConnectionState) { // Arrange var logMock = new Mock <ILog>(); var vaultMock = GetVaultMock(ALL_OK_ACCESSLEVEL); var hesAppConnectionMock = GetHesAppConnectionMock(hesConnectionState, vaultMock); hesAppConnectionMock .Setup(x => x.UpdateHwVaultStatus(It.IsAny <HwVaultInfoFromClientDto>(), It.IsAny <CancellationToken>())) .Throws(new InvalidOperationException("Unexpected request to server")); var stateUpdateProcessors = new StateUpdateProcessor(hesAppConnectionMock.Object, logMock.Object); // Act var newVaultInfo = await stateUpdateProcessors.UpdateVaultStatus(vaultMock.Object, ALL_OK_INFO, CancellationToken.None); // Assert Assert.AreEqual(ALL_OK_INFO, newVaultInfo); }
Mock <IHesAppConnection> GetHesAppConnectionMock(HesConnectionState connectionState, Mock <IDevice> vaultMock) { var hesAppConnectionMock = new Mock <IHesAppConnection>(); hesAppConnectionMock.SetupGet(x => x.State).Returns(connectionState); // When IHesAppConnectio.AuthHwVault is called, we update Vault mock so that // when IVault.RefreshDeviceInfo() is called, the AccessLevel of vault will be updated to reflect // successfull execution of IHesAppConnectio.AuthHwVault hesAppConnectionMock .Setup(x => x.AuthHwVault(It.IsAny <string>())) .Returns(Task.CompletedTask) .Callback(() => { vaultMock.Setup(x => x.RefreshDeviceInfo()).Callback(() => { vaultMock.SetupGet(d => d.AccessLevel).Returns(ALL_OK_ACCESSLEVEL); }); }); return(hesAppConnectionMock); }
public async Task UpdateVaultStatus_AuthNotRequired_StatusUnchanged(HesConnectionState hesConnectionState) { // Arrange var logMock = new Mock <ILog>(); var uiMock = new Mock <IClientUiManager>(); var vaultMock = GetVaultMock(ALL_OK_ACCESSLEVEL); var hesAppConnectionMock = GetHesAppConnectionMock(hesConnectionState, vaultMock); hesAppConnectionMock .Setup(x => x.AuthHwVault(It.IsAny <string>())) .Throws(new InvalidOperationException("Unexpected request to server")); var vaultAuthProcessor = new VaultAuthorizationProcessor(hesAppConnectionMock.Object, uiMock.Object, logMock.Object); // Act await vaultAuthProcessor.AuthVault(vaultMock.Object, CancellationToken.None); // Assert }
Mock <IHesAppConnection> GetHesAppConnectionMock(HesConnectionState connectionState, Mock <IDevice> vaultMock) { var hesAppConnectionMock = new Mock <IHesAppConnection>(); hesAppConnectionMock.SetupGet(x => x.State).Returns(connectionState); // When IHesAppConnectio.UpdateHwVaultStatus is called, we update Vault mock so that // when IVault.RefreshDeviceInfo() is called, the AccessLevel of vault will be updated to reflect // successfull execution of IHesAppConnectio.UpdateHwVaultStatus hesAppConnectionMock .Setup(x => x.UpdateHwVaultStatus(It.IsAny <HwVaultInfoFromClientDto>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(ALL_OK_INFO)) .Callback(() => { vaultMock.Setup(x => x.RefreshDeviceInfo()).Callback(() => { vaultMock.SetupGet(d => d.AccessLevel).Returns(ALL_OK_ACCESSLEVEL); }); }); return(hesAppConnectionMock); }