public async Task ElasticBand_methods_should_index_get_query_and_delete_documents_in_elasticsearch_for_type_TestObject2() { // Decide the index name and instantiate an ElasticBand... var index = "testindex2"; var elasticBand = new ElasticBand(new DefaultHttpClientFactory(), new ElasticQueryBuilder()); elasticBand.SetElasticsearchUrl("https://localhost:9200"); elasticBand.SetElasticsearchAuthentication("B0pGRnABUbqCwsoaMxi0:gexHoph8SnK_HpTuLkOgtw"); elasticBand.GetClient().DeleteAsync(index).Wait(); // Create some objects to index var object1 = new TestObject2 { Name = "Andrew", Birthday = new DateTime(2019, 2, 7) }; var object2 = new TestObject2 { Name = "James", Birthday = new DateTime(2019, 7, 27) }; var object3 = new TestObject2 { Name = "Drew", Birthday = new DateTime(2019, 1, 9) }; // Index the objects, optionally pass in an id, if omitted a new Guid will be generated... var indexResponse1 = await elasticBand.Index <TestObject2>(index, object1, "id1"); var indexResponse2 = await elasticBand.Index <TestObject2>(index, object2, "id2"); var indexResponse3 = await elasticBand.Index <TestObject2>(index, object3, "id3"); // Speedy lookup if you know an id... var getResponse1 = await elasticBand.GetDocumentByID <TestObject2>(index, "id2"); // Update a property and re-index... getResponse1.Data.Name = "Jamie"; await elasticBand.Index <TestObject2>(index, getResponse1.Data, "id2"); await Task.Delay(1000); // Give ES a chance to internally update the indicies // Query in various ways... var queryResult1 = await elasticBand.Query <TestObject2>(index, "Jamie"); var queryResult2 = await elasticBand.Query <TestObject2>(index, "name:Drew"); var queryResult3 = await elasticBand.Query <TestObject2>(index, "birthday>2019-03-01"); var queryResult4 = await elasticBand.Query <TestObject2>(index, "birthday<2019-03-01T09:05:00"); var queryResult5 = await elasticBand.Query <TestObject2>(index, "*rew"); // Delete... await elasticBand.Delete(index, "id2"); Assert.That(queryResult1.Data.Count, Is.EqualTo(1)); Assert.That(queryResult2.Data.Count, Is.EqualTo(1)); Assert.That(queryResult3.Data.Count, Is.EqualTo(1)); Assert.That(queryResult4.Data.Count, Is.EqualTo(2)); Assert.That(queryResult5.Data.Count, Is.EqualTo(2)); }
public void Index_should_return_an_ElasticBandResponse_given_the_expected_http_response_string() { var content = "{\"_index\":\"test_index\",\"_type\":\"_doc\",\"_id\":\"5c506881-37bb-4525-ba8c-09980e74a056\",\"_version\":1,\"result\":\"created\",\"_shards\":{\"total\":2,\"successful\":1,\"failed\":0},\"_seq_no\":0,\"_primary_term\":1}"; ConfigureClientFactory(content); var sut = new ElasticBand(_fakeHttpClientFactory, new ElasticQueryBuilder()); var testObject = new TestObject { Name = "aaa", ebDataType = "TestObject" }; var result = sut.Index("testIndex", testObject, "testId").Result; Assert.That(result.Ok, Is.EqualTo(true)); Assert.That(result.Result, Is.EqualTo("created")); Assert.That(result.Id, Is.EqualTo("testId")); }