Exemplo n.º 1
0
            public async void PersistsRequestIfItDoesNotExistAlready()
            {
                var sqlite = new Mock<ISQLiteAsyncConnection>();
                sqlite.Setup(s => s.Get<HttpRequest>()).Returns(Task.FromResult(new List<HttpRequest>()));

                var request = new HttpRequest { Method = HttpMethods.Get, Url = "http://localhost:3000/good" };
                var requestHistory = new RequestHistory(sqlite.Object);
                await requestHistory.AddRequestAsync(request);

                sqlite.Verify(s => s.InsertAsync(It.IsAny<HttpRequest>()), Times.Once());
            }
Exemplo n.º 2
0
            public async void DoesNotPersistRequestIfItAlreadyExists2(HttpMethods method, string url, int times)
            {
                var request = new HttpRequest { Method = HttpMethods.Get, Url = "http://localhost:3000/good" };

                var sqlite = new Mock<ISQLiteAsyncConnection>();
                sqlite.Setup(s => s.Get<HttpRequest>()).Returns(Task.FromResult(new List<HttpRequest> { request }));

                var newRequest = new HttpRequest { Method = method, Url = url };
                var requestHistory = new RequestHistory(sqlite.Object);
                await requestHistory.AddRequestAsync(newRequest);

                sqlite.Verify(s => s.InsertAsync(It.IsAny<HttpRequest>()), times.ToTimes());
            }
Exemplo n.º 3
0
            public async void PersistsRequestIfMethodIsDifferentAndUrlIsTheSame()
            {
                var url = "http://localhost:3000/good";
                var oldRequest = new HttpRequest { Method = HttpMethods.Get, Url = url };

                var sqlite = new Mock<ISQLiteAsyncConnection>();
                sqlite.Setup(s => s.Get<HttpRequest>()).Returns(Task.FromResult(new List<HttpRequest> { oldRequest }));

                var requestHistory = new RequestHistory(sqlite.Object);
                await requestHistory.AddRequestAsync(new HttpRequest { Method = HttpMethods.Put, Url = url });

                sqlite.Verify(s => s.InsertAsync(It.IsAny<HttpRequest>()), Times.Once());
            }
Exemplo n.º 4
0
            public async void CallsOnNextWhenNewDataIsPersisted(HttpMethods method, string url, bool expectedResult)
            {
                var oldRequest = new HttpRequest(HttpMethods.Get, "http://localhost:3000/good");

                var sqlite = new Mock<ISQLiteAsyncConnection>();
                sqlite.Setup(s => s.Get<HttpRequest>()).Returns(Task.FromResult(new List<HttpRequest> { oldRequest }));

                var newRequest = new HttpRequest(method, url);
                var requestHistory = new RequestHistory(sqlite.Object);

                // if onnext is not called by the time the timeout happens, then call OnException.
                Observable.Timeout(requestHistory.GetRequestsObservable(), TimeSpan.FromSeconds(2))
                    .Subscribe(
                        _ => Assert.True(expectedResult),
                        ex => Assert.False(expectedResult));

                await requestHistory.AddRequestAsync(newRequest);
            }