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);
        }
Beispiel #2
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 Find_NotFound_Should_ReturnEmpty()
        {
            // arrange
            var mockHttp = new MockHttpMessageHandler();

            var layout = FileMakerRestClient.GetLayoutName(new User());

            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")
            .Respond(HttpStatusCode.InternalServerError, "application/json", DataApiResponses.FindNotFound());

            var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(),
                                              FindTestsHelpers.server,
                                              FindTestsHelpers.file,
                                              FindTestsHelpers.user,
                                              FindTestsHelpers.pass);

            // act
            var toFind = new User()
            {
                Id = 35
            };
            var response = await fdc.FindAsync(toFind);

            // assert
            Assert.Empty(response);
        }
        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 async Task FindAsync_WithPortals_ShouldHaveData()
        {
            // 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/{layout}/_find")
            .Respond(HttpStatusCode.OK, "application/json", DataApiResponses.SuccessfulFindWithPortal());

            var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(),
                                              FindTestsHelpers.server,
                                              FindTestsHelpers.file,
                                              FindTestsHelpers.user,
                                              FindTestsHelpers.pass);

            var toFind = new PortalModel()
            {
                ES_ONE = ""
            };

            // act
            var response = await fdc.FindAsync(toFind);

            // assert
            Assert.NotEmpty(response);
            Assert.NotEmpty(response.SelectMany(p => p.Actions));
            // hard coded from sample data, if changed update here
            Assert.Equal(16, response.First().Actions.First().ID);
        }
Beispiel #7
0
        public async Task Find_For_Missing_Field_Should_Throw_FMDataException()
        {
            // arrange
            var mockHttp = new MockHttpMessageHandler();

            var layout = FileMakerRestClient.GetLayoutName(new User());

            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")
            .Respond(HttpStatusCode.InternalServerError, "application/json", DataApiResponses.FieldNotFound());

            var fdc = new FileMakerRestClient(mockHttp.ToHttpClient(), FindTestsHelpers.Connection);

            var toFind = new User()
            {
                Id = 35
            };

            // act
            // assert
            await Assert.ThrowsAsync <FMDataException>(async() => await fdc.FindAsync(toFind));
        }