Exemplo n.º 1
0
        public async Task UpdatesCachedValue()
        {
            string headerName   = "Sync-Token";
            string header1Value = "testSyncToken=A";
            string header2Value = "testSyncToken=B";

            var response1 = new MockResponse(200);

            response1.AddHeader(new HttpHeader(headerName, header1Value + ";sn=1"));

            var response2 = new MockResponse(200);

            response2.AddHeader(new HttpHeader(headerName, header2Value + ";sn=2"));

            MockTransport transport = CreateMockTransport(response1, response2, new MockResponse(200));
            var           policy    = new SyncTokenPolicy();

            await SendGetRequest(transport, policy);
            await SendGetRequest(transport, policy);
            await SendGetRequest(transport, policy);

            Assert.True(transport.Requests[1].Headers.TryGetValue(headerName, out string req1Value));
            Assert.True(transport.Requests[2].Headers.TryGetValue(headerName, out string req2Value));

            Assert.AreEqual(header1Value, req1Value);
            Assert.AreEqual(header2Value, req2Value);
        }
Exemplo n.º 2
0
        public async Task CachesHeaderValue()
        {
            string headerName   = "Sync-Token";
            string idTokenValue = "jtqGc1I4=MDoyOA==";
            string seqNoValue   = ";sn=28";
            string headerValue  = idTokenValue + seqNoValue;

            var syncTokenReponse = new MockResponse(200);

            syncTokenReponse.AddHeader(new HttpHeader(headerName, headerValue));

            MockTransport transport = CreateMockTransport(syncTokenReponse, new MockResponse(200));
            var           policy    = new SyncTokenPolicy();

            var response = await SendGetRequest(transport, policy);

            Assert.False(transport.Requests[0].Headers.TryGetValue(headerName, out _));
            Assert.True(response.Headers.TryGetValue(headerName, out string responseValue));
            Assert.AreEqual(headerValue, responseValue);

            await SendGetRequest(transport, policy);

            Assert.True(transport.Requests[1].Headers.TryGetValue(headerName, out string requestValue));
            Assert.AreEqual(idTokenValue, requestValue);
        }
Exemplo n.º 3
0
        public async Task CachesMultipleTokensFromSingleHeader()
        {
            string headerName   = "Sync-Token";
            string header1Value = "syncToken1=val1";
            string header2Value = "syncToken2=val2";

            var syncTokenReponse = new MockResponse(200);

            syncTokenReponse.AddHeader(new HttpHeader(headerName, $"{header1Value};sn=6,{header2Value};sn=10"));

            MockTransport transport = CreateMockTransport(syncTokenReponse, new MockResponse(200));
            var           policy    = new SyncTokenPolicy();

            await SendGetRequest(transport, policy);
            await SendGetRequest(transport, policy);

            Assert.True(transport.Requests[1].Headers.TryGetValue(headerName, out string reqValue));

            Assert.True($"{header1Value},{header2Value}".Equals(reqValue) ||
                        $"{header2Value},{header1Value}".Equals(reqValue));
        }