public void BuildUrl_Throws_On_Null_Parameter()
        {
            var target = new MediaRequestProcessor <Media> {
                BaseUrl = BaseUrlAndVersion
            };

            ArgumentException ex = L2TAssert.Throws <ArgumentException>(() => target.BuildUrl(null));

            Assert.AreEqual(nameof(Media.Type), ex.ParamName);
        }
        public void BuildUrl_Throws_On_Missing_Type()
        {
            var mediaReqProc = new MediaRequestProcessor <Media> {
                BaseUrl = BaseUrlAndVersion
            };
            var parameters = new Dictionary <string, string> {
            };

            ArgumentException ex = L2TAssert.Throws <ArgumentException>(() => mediaReqProc.BuildUrl(parameters));

            Assert.AreEqual(nameof(Media.Type), ex.ParamName);
        }
        public void BuildStatusUrl_MissingRequiredMediaID_Throws()
        {
            var target = new MediaRequestProcessor <Media> {
                BaseUrl = BaseUrlAndVersion
            };

            var parameters = new Dictionary <string, string>
            {
                { nameof(Media.Type), ((int)MediaType.Status).ToString() },
                { nameof(Media.Command), Media.StatusCommand },
                //{ nameof(Media.MediaID), 123.ToString() }
            };

            ArgumentException ex = L2TAssert.Throws <ArgumentException>(() => target.BuildUrl(parameters));

            Assert.AreEqual(nameof(Media.MediaID), ex.ParamName);
        }
        public void BuildUrl_Constructs_Status_Url()
        {
            const string ExpectedUrl = BaseUrlAndVersion + "media/upload.json?command=STATUS&media_id=123";
            var          reqProc     = new MediaRequestProcessor <Media>
            {
                Type      = MediaType.Status,
                UploadUrl = BaseUrlAndVersion
            };
            var parameters = new Dictionary <string, string>
            {
                { nameof(Media.Type), ((int)MediaType.Status).ToString() },
                { nameof(Media.Command), Media.StatusCommand },
                { nameof(Media.MediaID), 123.ToString() }
            };

            Request req = reqProc.BuildUrl(parameters);

            Assert.AreEqual(ExpectedUrl, req.FullUrl);
        }