Inheritance: RequestBuilderBase
 public void AddAlbumImagesRequest_WithIdsNull_ThrowsArgumentNullException()
 {
     var client = new ImgurClient("123", "1234");
     var requestBuilder = new AlbumRequestBuilder();
     var url = $"{client.EndpointUrl}album/AbcdeF/add";
     requestBuilder.AddAlbumImagesRequest(url, null);
 }
        public void AddAlbumImagesRequest_WithUrlNull_ThrowsArgumentNullException()
        {
            var requestBuilder = new AlbumRequestBuilder();

            var exception = Record.Exception(() => requestBuilder.AddAlbumImagesRequest(null, new List<string>()));
            Assert.NotNull(exception);
            Assert.IsType<ArgumentNullException>(exception);

            var argNullException = (ArgumentNullException) exception;
            Assert.Equal(argNullException.ParamName, "url");
        }
        public void AddAlbumImagesRequest_WithIdsNull_ThrowsArgumentNullException()
        {
            var client = new ImgurClient("123", "1234");
            var requestBuilder = new AlbumRequestBuilder();
            var mockUrl = $"{client.EndpointUrl}album/AbcdeF/add";

            var exception = Record.Exception(() => requestBuilder.AddAlbumImagesRequest(mockUrl, null));
            Assert.NotNull(exception);
            Assert.IsType<ArgumentNullException>(exception);

            var argNullException = (ArgumentNullException) exception;
            Assert.Equal(argNullException.ParamName, "imageIds");
        }
        public async Task AddAlbumImagesRequest_Equal()
        {
            var client = new ImgurClient("123", "1234");
            var requestBuilder = new AlbumRequestBuilder();

            var mockUrl = $"{client.EndpointUrl}album/AbcdeF/add";
            var ids = new List<string> {"Abc", "DEF", "XyZ"};

            var request = requestBuilder.AddAlbumImagesRequest(mockUrl, ids);
            var expected = "ids=Abc%2CDEF%2CXyZ";

            Assert.NotNull(request);
            Assert.Equal(expected, await request.Content.ReadAsStringAsync().ConfigureAwait(false));
            Assert.Equal("https://api.imgur.com/3/album/AbcdeF/add", request.RequestUri.ToString());
            Assert.Equal(HttpMethod.Put, request.Method);
        }
        public void RemoveAlbumImagesRequest_AreEqual()
        {
            var client = new ImgurClient("123", "1234");
            var requestBuilder = new AlbumRequestBuilder();

            var url = $"{client.EndpointUrl}album/AbcdeF/remove_images";
            var ids = new List<string> {"Abc", "DEF", "XyZ"};

            var request = requestBuilder.RemoveAlbumImagesRequest(url, ids);
            var expected = "ids=Abc%2CDEF%2CXyZ";

            Assert.IsNotNull(request);
            Assert.AreEqual("https://api.imgur.com/3/album/AbcdeF/remove_images?" + expected,
                request.RequestUri.ToString());
            Assert.AreEqual(HttpMethod.Delete, request.Method);
        }
        public async Task CreateAlbumRequest_Equal()
        {
            var client = new ImgurClient("123", "1234");
            var requestBuilder = new AlbumRequestBuilder();

            var mockUrl = $"{client.EndpointUrl}album/AbcdeF";
            var ids = new List<string> {"Abc", "DEF", "XyZ"};

            var request = requestBuilder.CreateAlbumRequest(
                mockUrl, "TheTitle", "TheDescription",
                AlbumPrivacy.Hidden, AlbumLayout.Horizontal,
                "io9XpoO", ids);

            var expected =
                "privacy=hidden&layout=horizontal&cover=io9XpoO&title=TheTitle&description=TheDescription&ids=Abc%2CDEF%2CXyZ";

            Assert.NotNull(request);
            Assert.Equal(expected, await request.Content.ReadAsStringAsync().ConfigureAwait(false));
            Assert.Equal("https://api.imgur.com/3/album/AbcdeF", request.RequestUri.ToString());
            Assert.Equal(HttpMethod.Post, request.Method);
        }
        public void CreateAlbumRequest_WithUrlNull_ThrowsArgumentNullException()
        {
            var requestBuilder = new AlbumRequestBuilder();
            var exception = Record.Exception(() => requestBuilder.CreateAlbumRequest(null));
            Assert.NotNull(exception);
            Assert.IsType<ArgumentNullException>(exception);

            var argNullException = (ArgumentNullException) exception;
            Assert.Equal(argNullException.ParamName, "url");
        }
 public void CreateAlbumRequest_WithUrlNull_ThrowsArgumentNullException()
 {
     var requestBuilder = new AlbumRequestBuilder();
     requestBuilder.CreateAlbumRequest(null);
 }
 public void AddAlbumImagesRequest_WithUrlNull_ThrowsArgumentNullException()
 {
     var requestBuilder = new AlbumRequestBuilder();
     requestBuilder.AddAlbumImagesRequest(null, null);
 }
        public async Task SetAlbumImagesRequest_AreEqual()
        {
            var client = new ImgurClient("123", "1234");
            var requestBuilder = new AlbumRequestBuilder();

            var url = $"{client.EndpointUrl}album/AbcdeF";
            var ids = new List<string> {"Abc", "DEF", "XyZ"};

            var request = requestBuilder.SetAlbumImagesRequest(url, ids);
            var expected = "ids=Abc%2CDEF%2CXyZ";

            Assert.IsNotNull(request);
            Assert.AreEqual(expected, await request.Content.ReadAsStringAsync());
            Assert.AreEqual("https://api.imgur.com/3/album/AbcdeF", request.RequestUri.ToString());
            Assert.AreEqual(HttpMethod.Post, request.Method);
        }