Ejemplo n.º 1
0
        public async Task CreateWithScript_RequiresScriptSet()
        {
            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When(HttpMethod.Post, $"{server}/fmi/data/v1/databases/{file}/layouts/{layout}/records*")
            .WithPartialContent("fieldData")
            .WithPartialContent("script")     // ensure the body contains the script parameter we're sending
            .WithPartialContent("run_this_script")
            .Respond("application/json", DataApiResponses.SuccessfulCreate());

            IFileMakerApiClient fdc = GetDataClientWithMockedHandler(mockHttp);

            var req = new CreateRequest <User>()
            {
                Layout = "layout",
                Data   = new User {
                    Name = "test name"
                },
                Script = "run_this_script"
            };

            var response = await fdc.SendAsync(req);

            Assert.NotNull(response);
            Assert.Contains(response.Messages, r => r.Message == "OK");
        }
Ejemplo n.º 2
0
        public async Task CreateFromDictionaryStringString_ShouldReturnOK_FromSendAsync()
        {
            IFileMakerApiClient fdc = GetDataClientWithMockedHandler();

            var response = await fdc.SendAsync(reqWithLayout);

            Assert.NotNull(response);
            Assert.Contains(response.Messages, r => r.Message == "OK");
        }
Ejemplo n.º 3
0
        public async Task CreateWithGlobal_Should_GetTwoOKs()
        {
            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When(new HttpMethod("PATCH"), $"{server}/fmi/data/v1/databases/{file}/globals")
            .WithPartialContent("globalFields")
            .Respond("application/json", DataApiResponses.SetGlobalSuccess());

            IFileMakerApiClient fdc = GetDataClientWithMockedHandler(mockHttp);

            var req = new CreateRequest <User>()
            {
                Layout = "layout",
                Data   = new User {
                    Name = "test name"
                },
                Script = "run_this_script"
            };

            var globalResponse = await fdc.SetGlobalFieldAsync("Table", "Field", "Value");

            Assert.NotNull(globalResponse);
            Assert.Contains(globalResponse.Messages, r => r.Message == "OK");
        }
Ejemplo n.º 4
0
        public async Task Create_WithoutLayout_ThrowsArgumentException_SendAsync()
        {
            IFileMakerApiClient fdc = GetDataClientWithMockedHandler();

            await Assert.ThrowsAsync <ArgumentException>(async() => await fdc.SendAsync(reqWithoutLayout));
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Generates a new find request with an initial find query instance, specifying the layout via the model's DataContract attribute.
 /// </summary>
 /// <param name="client">The FileMaker API client instance.</param>
 /// <param name="initialQuery">The initial find request data.</param>
 /// <typeparam name="T">The type used for the find request.</typeparam>
 /// <returns>An IFindRequest{T} instance setup per the initial query paramater.</returns>
 public static IFindRequest <T> GenerateFindRequest <T>(this IFileMakerApiClient client, T initialQuery)
 {
     return(client.GenerateFindRequest <T>()
            .AddCriteria(initialQuery, false)
            .UseLayout(initialQuery));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Generates a new edit request for the input object.
 /// </summary>
 /// <param name="client">The FileMaker API client instance.</param>
 /// <param name="data">The initial edit data request.</param>
 /// <typeparam name="T">The type used for the edit request.</typeparam>
 /// <returns>An IFindRequest{T} instance setup per the initial query paramater.</returns>
 public static IEditRequest <T> GenerateEditRequest <T>(this IFileMakerApiClient client, T data)
 {
     return(client.GenerateEditRequest <T>()
            .SetData(data)
            .UseLayout(data));
 }