public void TestConstructor() { var storageMock = new Mock<IStorageController>(MockBehavior.Strict); var controller = new InstallationIdController(storageMock.Object); // Make sure it didn't touch storageMock. storageMock.Verify(); }
public Task TestSet() { var storageMock = new Mock<IStorageController>(MockBehavior.Strict); var storageDictionary = new Mock<IStorageDictionary<string, object>>(); storageMock.Setup(s => s.LoadAsync()).Returns(Task.FromResult(storageDictionary.Object)); var controller = new InstallationIdController(storageMock.Object); return controller.GetAsync().ContinueWith(installationIdTask => { Assert.False(installationIdTask.IsFaulted); object verified = null; storageDictionary.Verify(s => s.TryGetValue("InstallationId", out verified)); storageDictionary.Verify(s => s.AddAsync("InstallationId", It.IsAny<object>())); var installationId = installationIdTask.Result; var installationId2 = Guid.NewGuid(); return controller.SetAsync(installationId2).ContinueWith(setTask => { Assert.False(setTask.IsFaulted); storageDictionary.Verify(s => s.AddAsync("InstallationId", installationId2.ToString())); return controller.GetAsync(); }).Unwrap().ContinueWith(installationId3Task => { Assert.False(installationId3Task.IsFaulted); storageDictionary.Verify(s => s.TryGetValue("InstallationId", out verified)); var installationId3 = installationId3Task.Result; Assert.AreEqual(installationId2, installationId3); return controller.SetAsync(installationId); }).Unwrap().ContinueWith(setTask => { Assert.False(setTask.IsFaulted); storageDictionary.Verify(s => s.AddAsync("InstallationId", installationId.ToString())); return controller.ClearAsync(); }).Unwrap().ContinueWith(clearTask => { Assert.False(clearTask.IsFaulted); storageDictionary.Verify(s => s.RemoveAsync("InstallationId")); return controller.SetAsync(installationId2); }).Unwrap().ContinueWith(setTask => { Assert.False(setTask.IsFaulted); storageDictionary.Verify(s => s.AddAsync("InstallationId", installationId2.ToString())); }); }).Unwrap(); }
public Task TestGet() { var storageMock = new Mock<IStorageController>(MockBehavior.Strict); var storageDictionary = new Mock<IStorageDictionary<string, object>>(); storageMock.Setup(s => s.LoadAsync()).Returns(Task.FromResult(storageDictionary.Object)); var controller = new InstallationIdController(storageMock.Object); return controller.GetAsync().ContinueWith(installationIdTask => { Assert.False(installationIdTask.IsFaulted); object verified = null; storageDictionary.Verify(s => s.TryGetValue("InstallationId", out verified)); storageDictionary.Verify(s => s.AddAsync("InstallationId", It.IsAny<object>())); return controller.GetAsync().ContinueWith(newInstallationIdTask => { Assert.False(newInstallationIdTask.IsFaulted); // Ensure nothing more has happened with our dictionary. storageDictionary.VerifyAll(); Assert.AreEqual(installationIdTask.Result, newInstallationIdTask.Result); return controller.ClearAsync(); }).Unwrap().ContinueWith(clearTask => { Assert.False(clearTask.IsFaulted); storageDictionary.Verify(storage => storage.RemoveAsync("InstallationId")); return controller.GetAsync(); }).Unwrap().ContinueWith(newInstallationIdTask => { Assert.False(newInstallationIdTask.IsFaulted); Assert.AreNotEqual(installationIdTask.Result, newInstallationIdTask.Result); storageDictionary.Verify(s => s.TryGetValue("InstallationId", out verified)); storageDictionary.Verify(s => s.AddAsync("InstallationId", It.IsAny<object>())); }); }).Unwrap(); }