Пример #1
0
        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;
        }