public void GetRetryAfterReturnsDefaultValueIfResponseKeyDoesNotExist()
        {
            // given
            var target = new TestResponse(mockLogger, 429, new Dictionary <string, List <string> >());

            // when
            var obtained = target.GetRetryAfterInMilliseconds();

            // then
            Assert.That(obtained, Is.EqualTo(Response.DefaultRetryAfterInMilliseconds));
        }
        public void GetRetryAfterReturnsDefaultValueIfMultipleValuesWereRetrieved()
        {
            // given
            var responseHeaders = new Dictionary <string, List <string> >
            {
                { Response.ResponseKeyRetryAfter, new List <string> {
                      "100", "200"
                  } }
            };
            var target = new TestResponse(mockLogger, 429, responseHeaders);

            // when
            var obtained = target.GetRetryAfterInMilliseconds();

            // then
            Assert.That(obtained, Is.EqualTo(Response.DefaultRetryAfterInMilliseconds));
        }
        public void GetRetryAfterReturnsDefaultValueIfValueIsNotParsableAsInteger()
        {
            // given
            var responseHeaders = new Dictionary <string, List <string> >
            {
                { Response.ResponseKeyRetryAfter, new List <string> {
                      "a"
                  } }
            };
            var target = new TestResponse(mockLogger, 429, responseHeaders);

            // when
            var obtained = target.GetRetryAfterInMilliseconds();

            // then
            Assert.That(obtained, Is.EqualTo(Response.DefaultRetryAfterInMilliseconds));
        }
        public void GetRetryAfterReturnsParsedValue()
        {
            // given
            var responseHeaders = new Dictionary <string, List <string> >
            {
                { Response.ResponseKeyRetryAfter, new List <string> {
                      "1234"
                  } }
            };
            var target = new TestResponse(mockLogger, 429, responseHeaders);

            // when
            var obtained = target.GetRetryAfterInMilliseconds();


            // then
            Assert.That(obtained, Is.EqualTo(1234L * 1000L));
        }