public async Task Test_DateTime_To_Timestamp_Parsing() { // arrange var mockHttp = new MockHttpMessageHandler(); var server = "http://localhost"; var file = "test-file"; var user = "******"; var pass = "******"; var layout = "Users"; mockHttp.When(HttpMethod.Post, $"{server}/fmi/data/v1/databases/{file}/sessions") .Respond("application/json", DataApiResponses.SuccessfulAuthentication()); mockHttp.When(HttpMethod.Post, $"{server}/fmi/data/v1/databases/{file}/layouts/{layout}/_find") .WithPartialContent("fuzzzerd") // ensure the request contains the expected content .Respond("application/json", DataApiResponses.SuccessfulFind()); var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(), new ConnectionInfo { FmsUri = server, Database = file, Username = user, Password = pass }); // act var response = await fdc.FindAsync(new User() { Name = "fuzzzerd" }); // assert var responseDataContainsResult = response.Any(r => r.Created == DateTime.Parse("03/29/2018 15:22:09")); Assert.True(responseDataContainsResult); }
public async Task FindAsync_Should_Handle_Extra_Data() { // arrange var mockHttp = new MockHttpMessageHandler(); var layout = "Users"; mockHttp.When(HttpMethod.Post, $"{FindTestsHelpers.Server}/fmi/data/v1/databases/{FindTestsHelpers.File}/sessions") .Respond("application/json", DataApiResponses.SuccessfulAuthentication()); mockHttp.When(HttpMethod.Post, $"{FindTestsHelpers.Server}/fmi/data/v1/databases/{FindTestsHelpers.File}/layouts/{layout}/_find") .WithPartialContent("limit") // ensure the request contains the expected content .WithPartialContent("offset") // ensure the request contains the expected content .Respond("application/json", DataApiResponses.SuccessfulFind()); var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(), FindTestsHelpers.Connection); // act var response = await fdc.FindAsync(new AdditionalDataUser() { Name = "fuzzzerd" }, 5, 5); var user = response.First(); // assert Assert.NotEmpty(user.AdditionalData); }
public async Task SendAsyncFind_WithOmit_Omits() { // arrange var mockHttp = new MockHttpMessageHandler(); var layout = "the-layout"; mockHttp.When(HttpMethod.Post, $"{FindTestsHelpers.Server}/fmi/data/v1/databases/{FindTestsHelpers.File}/sessions") .Respond("application/json", DataApiResponses.SuccessfulAuthentication()); mockHttp.When(HttpMethod.Post, $"{FindTestsHelpers.Server}/fmi/data/v1/databases/{FindTestsHelpers.File}/layouts/*") .WithPartialContent("omit") .Respond(HttpStatusCode.OK, "application/json", DataApiResponses.SuccessfulFind()); var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(), FindTestsHelpers.Connection); var toFind = new User() { Id = 35 }; var req = new FindRequest <User>() { Layout = layout }; req.AddQuery(toFind, true); var response = await fdc.SendAsync(req); // assert // since we're not really talking to fms, we know our // response data has 4, so we know if we had an 'omit' // in our request and a 4 in our response things worked as expected. Assert.Contains(response, c => c.Id == 4); }
public async Task Find_WithScript_ShouldHaveScript() { // arrange var mockHttp = new MockHttpMessageHandler(); var layout = "Users"; mockHttp.When(HttpMethod.Post, $"{FindTestsHelpers.server}/fmi/data/v1/databases/{FindTestsHelpers.file}/sessions") .Respond("application/json", DataApiResponses.SuccessfulAuthentication()); mockHttp.When(HttpMethod.Post, $"{FindTestsHelpers.server}/fmi/data/v1/databases/{FindTestsHelpers.file}/layouts/{layout}/_find") .WithPartialContent("fuzzzerd") // ensure the request contains the expected content .WithPartialContent("script").WithPartialContent("nos_ran") .Respond("application/json", DataApiResponses.SuccessfulFind()); var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(), FindTestsHelpers.server, FindTestsHelpers.file, FindTestsHelpers.user, FindTestsHelpers.pass); // act var response = await fdc.FindAsync(new User() { Name = "fuzzzerd" }, "nos_ran", null, null); // assert var responseDataContainsResult = response.Any(r => r.Created == DateTime.Parse("03/29/2018 15:22:09")); Assert.True(responseDataContainsResult); }
public async Task FindAsync_WithSkipTake_ShouldHave_LimitOffset() { // arrange var mockHttp = new MockHttpMessageHandler(); var layout = "Users"; mockHttp.When(HttpMethod.Post, $"{FindTestsHelpers.server}/fmi/data/v1/databases/{FindTestsHelpers.file}/sessions") .Respond("application/json", DataApiResponses.SuccessfulAuthentication()); mockHttp.When(HttpMethod.Post, $"{FindTestsHelpers.server}/fmi/data/v1/databases/{FindTestsHelpers.file}/layouts/{layout}/_find") .WithPartialContent("limit") // ensure the request contains the expected content .WithPartialContent("offset") // ensure the request contains the expected content .Respond("application/json", DataApiResponses.SuccessfulFind()); var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(), FindTestsHelpers.server, FindTestsHelpers.file, FindTestsHelpers.user, FindTestsHelpers.pass); // act var response = await fdc.FindAsync(new User() { Name = "fuzzzerd" }, 5, 5); // assert Assert.NotEmpty(response); }
public static IFileMakerApiClient GetMockedFDC() { var mockHttp = new MockHttpMessageHandler(); mockHttp.When(HttpMethod.Post, $"{server}/fmi/data/v1/databases/{file}/sessions") .Respond("application/json", DataApiResponses.SuccessfulAuthentication()); mockHttp.When(HttpMethod.Get, $"{server}/fmi/data/v1/databases/{file}/layout*") .Respond("application/json", DataApiResponses.SuccessfulFind()); mockHttp.When(HttpMethod.Post, $"{server}/fmi/data/v1/databases/{file}/layouts/layout/_find") .Respond("application/json", DataApiResponses.SuccessfulFind()); mockHttp.When(HttpMethod.Post, $"{server}/fmi/data/v1/databases/{file}/layouts/Users/_find") .Respond("application/json", DataApiResponses.SuccessfulFind()); var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(), server, file, user, pass); return(fdc); }