public void InitializeAnonymous() { var mock = new Mock <ISmugMugAPI>(); User invalidUser = null; User validUser = new User() { Name = "Valid User", NickName = "ValidUser" }; mock.Setup(api => api.GetUser("ValidUser")).ReturnsAsync(validUser); mock.Setup(api => api.GetUser("InvalidUser")).ReturnsAsync(invalidUser); Folder invalidFolder = null; Folder validFolder = new Folder() { Name = "ValidFolder", NodeID = "ABCDE" }; mock.Setup(api => api.GetFolder("ValidUser", "ValidFolder")).ReturnsAsync(validFolder); mock.Setup(api => api.GetFolder("ValidUser", "InvalidFolder")).ReturnsAsync(invalidFolder); Album invalidAlbum = null; Album validAlbum = new Album() { Name = "ValidAlbum", ImageCount = 5 }; Album validAlbumWithArguments = new Album() { Name = "ValidAlbum", ImageCount = 5, Description = "Description" }; Album unownedAlbum = new Album() { Name = "UnownedAlbum", ImageCount = 5, Privacy = PrivacyType.Private }; Album updatedAlbum = new Album() { Name = "Updated album", ImageCount = 5 }; mock.Setup(api => api.GetAlbum("ValidAlbum")).ReturnsAsync(validAlbum); mock.Setup(api => api.GetAlbum("InvalidAlbum")).ReturnsAsync(invalidAlbum); mock.Setup(api => api.GetAlbum("UnownedAlbum")).ReturnsAsync(unownedAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), "ValidUser", "ValidPath", null)).ReturnsAsync(validAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), "ValidUser", "ValidPath", It.Is <Dictionary <string, string> >(i => i.ContainsKey("Invalid")))).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), "ValidUser", "ValidPath", It.Is <Dictionary <string, string> >(i => i.ContainsKey("Description")))).ReturnsAsync(validAlbumWithArguments); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), "ValidUser", "ValidPath", It.Is <Dictionary <string, string> >(i => !i.ContainsKey("Invalid") && !i.ContainsKey("Description")))).ReturnsAsync(validAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), "ValidUser", "InvalidPath", null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), "InvalidUser", "ValidPath", null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), "InvalidUser", "InvalidPath", null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validUser, "ValidPath", null)).ReturnsAsync(validAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validUser, "ValidPath", It.Is <Dictionary <string, string> >(i => i.ContainsKey("Invalid")))).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validUser, "ValidPath", It.Is <Dictionary <string, string> >(i => i.ContainsKey("Description")))).ReturnsAsync(validAlbumWithArguments); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validUser, "ValidPath", It.Is <Dictionary <string, string> >(i => !i.ContainsKey("Invalid") && !i.ContainsKey("Description")))).ReturnsAsync(validAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validUser, "InvalidPath", null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), invalidUser, "ValidPath", null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), invalidUser, "InvalidPath", null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validFolder, null)).ReturnsAsync(validAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validFolder, It.Is <Dictionary <string, string> >(i => i.ContainsKey("Invalid")))).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validFolder, It.Is <Dictionary <string, string> >(i => i.ContainsKey("Description")))).ReturnsAsync(validAlbumWithArguments); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), validFolder, It.Is <Dictionary <string, string> >(i => !i.ContainsKey("Invalid") && !i.ContainsKey("Description")))).ReturnsAsync(validAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), invalidFolder, null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), invalidFolder, null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.CreateAlbum(It.IsAny <string>(), invalidFolder, null)).ReturnsAsync(invalidAlbum); mock.Setup(api => api.DeleteAlbum(invalidAlbum)).Throws <ArgumentNullException>(); mock.Setup(api => api.DeleteAlbum(unownedAlbum)).Throws <HttpRequestException>(); mock.Setup(api => api.UpdateAlbum(validAlbum, It.Is <Dictionary <string, string> >(i => i.ContainsKey("Name")))).ReturnsAsync(updatedAlbum); mock.Setup(api => api.UpdateAlbum(validAlbum, It.Is <Dictionary <string, string> >(i => i.ContainsKey("Invalid")))).Throws <HttpRequestException>(); mock.Setup(api => api.UpdateAlbum((Album)null, It.IsAny <Dictionary <string, string> >())).Throws <ArgumentNullException>(); mock.Setup(api => api.UpdateAlbum(validAlbum, null)).Throws <ArgumentNullException>(); api = mock.Object; }