Skip to content

Commit b078e56

Browse files
committed
Added integration tests for TermVector and MultiTermVectors
1 parent e6734d7 commit b078e56

File tree

4 files changed

+162
-4
lines changed

4 files changed

+162
-4
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using FluentAssertions;
7+
using NUnit.Framework;
8+
using Nest.Tests.MockData.Domain;
9+
10+
namespace Nest.Tests.Integration.Core.TermVectors
11+
{
12+
[TestFixture]
13+
public class MultiTermVectorsTests : IntegrationTests
14+
{
15+
[Test]
16+
public void MultiTermVectorsTest()
17+
{
18+
var result = _client.MultiTermVectors<ElasticsearchProject>(s => s
19+
.Fields(ep => ep.Content)
20+
.Ids("1", "2"));
21+
22+
result.IsValid.Should().BeTrue();
23+
24+
result.Documents.Should().NotBeNull();
25+
result.Documents.Count().Should().Be(2);
26+
27+
foreach (var document in result.Documents)
28+
{
29+
document.TermVectors.Count().Should().Be(1);
30+
document.TermVectors.First().Key.Should().Be("content");
31+
}
32+
}
33+
34+
[Test]
35+
public void MultiTermVectorsNonExistentIdTest()
36+
{
37+
var result = _client.MultiTermVectors<ElasticsearchProject>(s => s
38+
.Ids("thisiddoesnotexist"));
39+
40+
result.IsValid.Should().BeTrue();
41+
result.Documents.Count().Should().Be(1);
42+
result.Documents.First().Found.Should().Be(false);
43+
}
44+
}
45+
}
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using FluentAssertions;
7+
using NUnit.Framework;
8+
using Nest.Tests.MockData.Domain;
9+
10+
namespace Nest.Tests.Integration.Core.TermVectors
11+
{
12+
[TestFixture]
13+
public class TermVectorTests : IntegrationTests
14+
{
15+
[Test]
16+
public void TermVectorDefaultsTest()
17+
{
18+
var result = _client.TermVector<ElasticsearchProject>(s => s
19+
.Id("1")
20+
.Fields(ep => ep.Content));
21+
22+
result.IsValid.Should().BeTrue();
23+
result.Found.Should().BeTrue();
24+
result.TermVectors.Count().Should().Be(1);
25+
26+
var contentTermVector = result.TermVectors["content"];
27+
contentTermVector.FieldStatistics.Should().NotBeNull();
28+
contentTermVector.FieldStatistics.DocumentCount.Should().BeGreaterOrEqualTo(1);
29+
contentTermVector.FieldStatistics.SumOfDocumentFrequencies.Should().BeGreaterOrEqualTo(1);
30+
contentTermVector.FieldStatistics.SumOfTotalTermFrequencies.Should().BeGreaterOrEqualTo(1);
31+
32+
contentTermVector.Terms.Count.Should().BeGreaterOrEqualTo(1);
33+
34+
var firstTerm = contentTermVector.Terms.First().Value;
35+
firstTerm.Tokens.Should().NotBeNull();
36+
firstTerm.TotalTermFrequency.Should().Be(0);
37+
firstTerm.DocumentFrequency.Should().Be(0);
38+
}
39+
40+
[Test]
41+
public void TermVectorDefaultsWithTermStatisticsTest()
42+
{
43+
var result = _client.TermVector<ElasticsearchProject>(s => s
44+
.Id("1")
45+
.Fields(ep => ep.Content)
46+
.TermStatistics(true));
47+
48+
result.IsValid.Should().BeTrue();
49+
result.Found.Should().BeTrue();
50+
result.TermVectors.Count().Should().Be(1);
51+
52+
var contentTermVector = result.TermVectors["content"];
53+
contentTermVector.FieldStatistics.Should().NotBeNull();
54+
contentTermVector.FieldStatistics.DocumentCount.Should().BeGreaterOrEqualTo(1);
55+
contentTermVector.FieldStatistics.SumOfDocumentFrequencies.Should().BeGreaterOrEqualTo(1);
56+
contentTermVector.FieldStatistics.SumOfTotalTermFrequencies.Should().BeGreaterOrEqualTo(1);
57+
58+
contentTermVector.Terms.Count.Should().BeGreaterOrEqualTo(1);
59+
60+
var firstTerm = contentTermVector.Terms.First().Value;
61+
firstTerm.Tokens.Should().NotBeNull();
62+
firstTerm.TotalTermFrequency.Should().BeGreaterOrEqualTo(1);
63+
firstTerm.DocumentFrequency.Should().BeGreaterOrEqualTo(1);
64+
}
65+
66+
[Test]
67+
public void TermVectorNoFieldStatisticsTest()
68+
{
69+
var result = _client.TermVector<ElasticsearchProject>(s => s
70+
.Id("1")
71+
.Fields(ep => ep.Content)
72+
.FieldStatistics(false));
73+
74+
result.IsValid.Should().BeTrue();
75+
result.Found.Should().BeTrue();
76+
result.TermVectors.Count().Should().Be(1);
77+
78+
var contentTermVector = result.TermVectors["content"];
79+
contentTermVector.FieldStatistics.Should().BeNull();
80+
}
81+
82+
[Test]
83+
public void TermVectorNonMappedFieldTest()
84+
{
85+
var result = _client.TermVector<ElasticsearchProject>(s => s
86+
.Id("1")
87+
.Fields(ep => ep.Name));
88+
89+
result.IsValid.Should().BeTrue();
90+
result.TermVectors.Count().ShouldBeEquivalentTo(0);
91+
}
92+
93+
[Test]
94+
public void TermVectorNonExistentIdTest()
95+
{
96+
var result = _client.TermVector<ElasticsearchProject>(s => s
97+
.Id("thisiddoesnotexist")
98+
.Fields(ep => ep.Name));
99+
100+
result.IsValid.Should().Be(true);
101+
result.Found.Should().Be(false);
102+
result.TermVectors.Count.Should().Be(0);
103+
}
104+
}
105+
}

src/Tests/Nest.Tests.Integration/IntegrationSetup.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ public static void Setup()
2424
var createIndexResult = client.CreateIndex(ElasticsearchConfiguration.DefaultIndex, c => c
2525
.NumberOfReplicas(0)
2626
.NumberOfShards(1)
27-
.AddMapping<ElasticsearchProject>(m => m.MapFromAttributes())
27+
.AddMapping<ElasticsearchProject>(m => m
28+
.MapFromAttributes()
29+
.Properties(p => p
30+
.String(s => s.Name(ep => ep.Content).TermVector(TermVectorOption.with_positions_offsets_payloads))))
2831
.AddMapping<Person>(m => m.MapFromAttributes())
2932
.AddMapping<BoolTerm>(m => m.Properties(pp=>pp
3033
.String(sm => sm.Name(p => p.Name1).Index(FieldIndexOption.not_analyzed))
@@ -35,7 +38,10 @@ public static void Setup()
3538
var createAntotherIndexResult = client.CreateIndex(ElasticsearchConfiguration.DefaultIndex + "_clone", c => c
3639
.NumberOfReplicas(0)
3740
.NumberOfShards(1)
38-
.AddMapping<ElasticsearchProject>(m => m.MapFromAttributes())
41+
.AddMapping<ElasticsearchProject>(m => m
42+
.MapFromAttributes()
43+
.Properties(p => p
44+
.String(s => s.Name(ep => ep.Content).TermVector(TermVectorOption.with_positions_offsets_payloads))))
3945
.AddMapping<Person>(m => m.MapFromAttributes())
4046
.AddMapping<BoolTerm>(m => m.Properties(pp => pp
4147
.String(sm => sm.Name(p => p.Name1).Index(FieldIndexOption.not_analyzed))
@@ -54,8 +60,8 @@ public static void Setup()
5460
[TearDown]
5561
public static void TearDown()
5662
{
57-
var client = ElasticsearchConfiguration.Client;
58-
client.DeleteIndex(di=>di.Indices(ElasticsearchConfiguration.DefaultIndex, ElasticsearchConfiguration.DefaultIndex + "_*"));
63+
var client = ElasticsearchConfiguration.Client;
64+
client.DeleteIndex(di => di.Indices(ElasticsearchConfiguration.DefaultIndex, ElasticsearchConfiguration.DefaultIndex + "_*"));
5965
}
6066
}
6167
}

src/Tests/Nest.Tests.Integration/Nest.Tests.Integration.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@
105105
<Compile Include="Core\Exists\DocumentExistsTests.cs" />
106106
<Compile Include="Core\Suggest\SuggestTests.cs" />
107107
<Compile Include="Core\MultiSearch\MultiSearchTests.cs" />
108+
<Compile Include="Core\TermVectors\MultiTermVectorsTests.cs" />
109+
<Compile Include="Core\TermVectors\TermVectorTests.cs" />
108110
<Compile Include="DebugTests\MemoryUsageTests.cs" />
109111
<Compile Include="ElasticsearchConfiguration.cs" />
110112
<Compile Include="Core\IndexTests.cs" />

0 commit comments

Comments
 (0)