public void SyncProjectsOK() { List <Project> fakeProjects = ProjectUtility.GetFakeSimpleProjects(); string content = JsonConvert.SerializeObject(fakeProjects.GetRange(0, 2), new JsonSerializerSettings { DateTimeZoneHandling = DateTimeZoneHandling.Utc }); Mock <HttpWebRequest> mockWebRequest = FakeWebRequest.CreateRequestWithResponse(content, new Dictionary <string, string> { { "SyncTimestamp", "stamp1;projectid=3" } }); mockWebRequest.SetupSet(r => r.Method = "GET").Verifiable(); SyncResult <Project> result = syncService.SyncProjects(null).GetAwaiter().GetResult(); UriBuilder uriBuilder = new UriBuilder("https://api.aproplan.com/rest/projectsync"); string expectedUrl = AproplanApiUtility.BuildRestUrl(mockApi.Object.ApiRootUrl, "projectsync", mockApi.Object.ApiVersion, mockApi.Object.RequesterId); Assert.AreEqual(expectedUrl, FakeWebRequest.Instance.UriCalled[0].ToString()); Assert.AreEqual(2, result.Data.Count); Assert.AreEqual(fakeProjects[0].Id, result.Data[0].Id); Assert.AreEqual(fakeProjects[1].Id, result.Data[1].Id); Assert.AreEqual("stamp1;projectid=3", result.ContinuationToken); mockWebRequest.Verify(); }
public void SyncNotesOK() { Guid projectId = Guid.NewGuid(); List <Note> fakeNotes = NoteUtility.GetFakeSimpleNotes(); string content = JsonConvert.SerializeObject(fakeNotes.GetRange(0, 2), new JsonSerializerSettings { DateTimeZoneHandling = DateTimeZoneHandling.Utc }); Mock <HttpWebRequest> mockWebRequest = FakeWebRequest.CreateRequestWithResponse(content, new Dictionary <string, string> { { "SyncTimestamp", "stamp1;noteid=3" } }); mockWebRequest.SetupSet(r => r.Method = "GET").Verifiable(); SyncResult <Note> result = syncService.SyncNotes(projectId, null).GetAwaiter().GetResult(); string expectedUrl = AproplanApiUtility.BuildRestUrl(mockApi.Object.ApiRootUrl, "notesync", mockApi.Object.ApiVersion, mockApi.Object.RequesterId); expectedUrl += "&projectid=" + projectId; Assert.AreEqual(expectedUrl, FakeWebRequest.Instance.UriCalled[0].ToString()); Assert.AreEqual(2, result.Data.Count); Assert.AreEqual(fakeNotes[0].Id, result.Data[0].Id); Assert.AreEqual(fakeNotes[1].Id, result.Data[1].Id); Assert.AreEqual("stamp1;noteid=3", result.ContinuationToken); mockWebRequest.Verify(); }
public static User MakeLogin(ApiRequest request) { dynamic json = new { UserInfo = UserUtility.CreateUser("*****@*****.**", "John Smith"), Token = Guid.NewGuid(), ValidityStart = DateTime.Now.ToUniversalTime().ToString("o"), ValidityLimit = DateTime.Now.ToUniversalTime().AddMinutes(10).ToString("o") }; string content = JsonConvert.SerializeObject(json); Mock <HttpWebRequest> mockWebRequest = FakeWebRequest.CreateRequestWithResponse(content); mockWebRequest.SetupSet(r => r.Method = "POST").Verifiable(); mockWebRequest.SetupSet(r => r.ContentType = "application/json").Verifiable(); User user = request.Login("*****@*****.**", "aproplan").GetAwaiter().GetResult(); FakeWebRequest.Instance.Reset(); return(user); }
public static User FakeLogin(ApiRequest request, DateTime?validityStart = null) { if (!validityStart.HasValue) { validityStart = DateTime.Now; } FakeWebRequest.Instance.Reset(); WebRequest.RegisterPrefix(request.ApiRootUrl, FakeWebRequest.Instance); dynamic json = new { UserInfo = UserUtility.CreateUser("*****@*****.**", "John Smith"), Token = Guid.NewGuid(), ValidityStart = validityStart.Value.ToUniversalTime().ToString("o"), ValidityLimit = validityStart.Value.ToUniversalTime().AddMinutes(10).ToString("o") }; string content = JsonConvert.SerializeObject(json); Mock <HttpWebRequest> mockWebRequest = FakeWebRequest.CreateRequestWithResponse(content); mockWebRequest.SetupSet(r => r.Method = "POST").Verifiable(); mockWebRequest.SetupSet(r => r.ContentType = "application/json").Verifiable(); return(request.Login("*****@*****.**", "aproplan").GetAwaiter().GetResult()); }
public WebRequest Create(Uri uri) { var request = new FakeWebRequest(uri); _requests.Add(request); return request; }
public void SyncAllProjectsOK() { List <Project> fakeProjects = ProjectUtility.GetFakeSimpleProjects(); int index = 0; List <Project> resultToReturn = fakeProjects.GetRange(index, 2); string content = JsonConvert.SerializeObject(resultToReturn, new JsonSerializerSettings { DateTimeZoneHandling = DateTimeZoneHandling.Utc }); string stamp = "stamp" + index + ";projectid=" + index; Mock <HttpWebRequest> mockWebRequest = FakeWebRequest.CreateRequestWithResponse(content, new Dictionary <string, string> { { "SyncTimestamp", stamp } }); mockWebRequest.SetupSet(r => r.Method = "GET").Verifiable(); string lastStamp = stamp; string baseUrl = AproplanApiUtility.BuildRestUrl(mockApi.Object.ApiRootUrl, "projectsync", mockApi.Object.ApiVersion, mockApi.Object.RequesterId); SyncResult <Project> result = syncService.SyncAllProjects(null, (SyncResult <Project> r, ref bool cancel) => { string expectedUrl = baseUrl; if (index > 0) { expectedUrl = baseUrl + "×tamp=" + Uri.EscapeDataString(lastStamp); } Assert.AreEqual(expectedUrl, FakeWebRequest.Instance.UriCalled[FakeWebRequest.Instance.UriCalled.Count - 1].ToString()); Assert.AreEqual(stamp, r.ContinuationToken); Assert.AreEqual(resultToReturn.Count, r.Data.Count); for (var i = 0; i < resultToReturn.Count; i++) { Assert.AreEqual(resultToReturn[i].Id, r.Data[i].Id); } lastStamp = stamp; index += 2; int cpt = fakeProjects.Count - index; resultToReturn = cpt > 0 ? fakeProjects.GetRange(index, cpt < 2 ? 1 : 2) : new List <Project>(); content = JsonConvert.SerializeObject(resultToReturn, new JsonSerializerSettings { DateTimeZoneHandling = DateTimeZoneHandling.Utc }); if (resultToReturn.Count > 0) { stamp = "stamp" + index + ";projectid=" + index; } else { stamp = null; } mockWebRequest = FakeWebRequest.CreateRequestWithResponse(content, new Dictionary <string, string> { { "SyncTimestamp", stamp } }); mockWebRequest.SetupSet(req => req.Method = "GET").Verifiable(); }).GetAwaiter().GetResult(); Assert.AreEqual(4, FakeWebRequest.Instance.UriCalled.Count); Assert.AreEqual(fakeProjects.Count, result.Data.Count); Assert.AreEqual(true, string.IsNullOrEmpty(result.ContinuationToken)); mockWebRequest.Verify(); }