Esempio n. 1
0
        public async Task BulkRequest_DescriptorSerialisationTest()
        {
            var request = new BulkRequestDescriptor();

            request.Index(FixedProject, b => b.Index("project"));
            request.Index(FixedProject);

            var serialisedJson = await SerializeAndGetJsonStringAsync(request);

            var sr    = new StringReader(serialisedJson);
            var count = 0;

            while (true)
            {
                var line = sr.ReadLine();
                if (line is not null)
                {
                    await Verifier.VerifyJson(line).UseMethodName($"{nameof(BulkRequest_DescriptorSerialisationTest)}_{++count}");
                }
                else
                {
                    break;
                }
            }
        }
        public async Task BulkRequestWithCreateOperations_Descriptor_SerializesCorrectly()
        {
            var settings = new ElasticsearchClientSettings();

            settings.DefaultMappingFor <Inferrable>(m => m.IdProperty(p => p.Name).RoutingProperty(r => r.Name).IndexName("test-index"));

            var ms = new MemoryStream();

            var fluentRequest = new BulkRequestDescriptor(b => b
                                                          .Index("index-from-request")
                                                          .Create(Inferrable.Instance)
                                                          .Create(Inferrable.Instance, i => i
                                                                  .Id("OverriddenId")
                                                                  .Routing("OverriddenRoute")
                                                                  .Index("overridden-index")
                                                                  .Pipeline("my-pipeline")
                                                                  .RequireAlias(false)
                                                                  .Version(1)
                                                                  .VersionType(VersionType.External)
                                                                  .DynamicTemplates(d => d.Add("t1", "v1")))
                                                          .Create(NonInferrable.Instance)
                                                          .Create(NonInferrable.Instance, "configured-index")
                                                          .Create(NonInferrable.Instance, i => i
                                                                  .Id("ConfiguredId")
                                                                  .Routing("ConfiguredRoute")
                                                                  .Index("configured-index")
                                                                  .IfPrimaryTerm(100)
                                                                  .IfSequenceNumber(10)
                                                                  .Pipeline("my-pipeline")
                                                                  .RequireAlias(false)
                                                                  .DynamicTemplates(d => d.Add("t1", "v1"))));

            await fluentRequest.SerializeAsync(ms, settings);

            ms.Position = 0;
            var reader = new StreamReader(ms);
            var ndjson = reader.ReadToEnd();

            await Verifier.Verify(ndjson, _verifySettings);

            ms = new MemoryStream();
            fluentRequest.Serialize(ms, settings);

            ms.Position = 0;
            reader      = new StreamReader(ms);
            ndjson      = reader.ReadToEnd();

            await Verifier.Verify(ndjson, _verifySettings);
        }