示例#1
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }