Skip to content

Commit c14574e

Browse files
committed
fixed several MapFromAttribute() and GetMapping() bugs, all integration tests are now back to green
1 parent 13792c7 commit c14574e

File tree

64 files changed

+415
-215
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+415
-215
lines changed

src/Nest.Connection.Thrift/Nest.Connection.Thrift.ncrunchproject

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@
1414
<IncludeStaticReferencesInWorkspace>true</IncludeStaticReferencesInWorkspace>
1515
<DefaultTestTimeout>60000</DefaultTestTimeout>
1616
<UseBuildConfiguration></UseBuildConfiguration>
17+
<UseBuildPlatform />
1718
<ProxyProcessPath></ProxyProcessPath>
1819
<UseCPUArchitecture>AutoDetect</UseCPUArchitecture>
19-
<IgnoredTests>
20-
<RegexTestSelector>
21-
<RegularExpression>.*</RegularExpression>
22-
</RegexTestSelector>
23-
</IgnoredTests>
2420
</ProjectConfiguration>
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using Nest;
6+
using Nest.Tests.MockData;
7+
using Nest.Tests.MockData.Domain;
8+
using NUnit.Framework;
9+
10+
namespace Nest.Tests.Integration
11+
{
12+
[TestFixture]
13+
public class BaseTests
14+
{
15+
//static initializer to really run initialization once
16+
static BaseTests()
17+
{
18+
var client = CreateClient();
19+
var cloneIndex = Test.Default.DefaultIndex + "_clone";
20+
if (client.IsValid)
21+
{
22+
var projects = NestTestData.Data;
23+
var people = NestTestData.People;
24+
25+
client.DeleteMapping<ElasticSearchProject>();
26+
client.DeleteMapping<ElasticSearchProject>(cloneIndex);
27+
client.OpenIndex<ElasticSearchProject>();
28+
client.OpenIndex(cloneIndex);
29+
30+
ResetType<ElasticSearchProject>(client, projects);
31+
ResetType<Person>(client, people);
32+
}
33+
}
34+
35+
36+
[TestFixtureSetUp]
37+
public virtual void Initialize()
38+
{
39+
40+
}
41+
42+
private static IConnectionSettings _settings;
43+
protected static IConnectionSettings Settings
44+
{
45+
get
46+
{
47+
if (_settings != null)
48+
return _settings;
49+
50+
_settings = new ConnectionSettings(Test.Default.Host, Test.Default.Port)
51+
.SetDefaultIndex(Test.Default.DefaultIndex)
52+
.SetMaximumAsyncConnections(Test.Default.MaximumAsyncConnections)
53+
.UsePrettyResponses();
54+
55+
return _settings;
56+
}
57+
}
58+
59+
private ElasticClient _connectedClient;
60+
protected ElasticClient _client
61+
{
62+
get
63+
{
64+
if (this._connectedClient != null)
65+
return this._connectedClient;
66+
67+
var client = new ElasticClient(Settings);
68+
if (client.IsValid)
69+
{
70+
this._connectedClient = client;
71+
return this._connectedClient;
72+
}
73+
return null;
74+
}
75+
}
76+
77+
protected static ElasticClient CreateClient()
78+
{
79+
return new ElasticClient(Settings);
80+
}
81+
82+
protected virtual void ResetIndexes()
83+
{
84+
85+
}
86+
87+
private static void ResetType<T>(IElasticClient client, IEnumerable<T> objects) where T : class
88+
{
89+
var cloneIndex = Test.Default.DefaultIndex + "_clone";
90+
var bulkParameters = new SimpleBulkParameters() { Refresh = true };
91+
92+
client.MapFromAttributes<T>();
93+
client.MapFromAttributes<T>(cloneIndex);
94+
95+
client.IndexMany(objects, bulkParameters);
96+
client.IndexMany(objects, cloneIndex, bulkParameters);
97+
}
98+
99+
protected void DeleteIndices()
100+
{
101+
var client = CreateClient();
102+
if (client.IsValid)
103+
{
104+
var cloneIndex = Test.Default.DefaultIndex + "_clone";
105+
client.DeleteMapping<ElasticSearchProject>();
106+
client.DeleteMapping<ElasticSearchProject>(cloneIndex);
107+
}
108+
}
109+
110+
protected void BulkIndexData()
111+
{
112+
var client = CreateClient();
113+
if (client.IsValid)
114+
{
115+
var projects = NestTestData.Data;
116+
var cloneIndex = Test.Default.DefaultIndex + "_clone";
117+
var bulkParameters = new SimpleBulkParameters() { Refresh = true };
118+
client.IndexMany(projects, bulkParameters);
119+
client.IndexMany(projects, cloneIndex, bulkParameters);
120+
121+
}
122+
}
123+
124+
/// <summary>
125+
/// Execute a filter test and assert the results.
126+
/// </summary>
127+
/// <param name="project">Document to be search</param>
128+
/// <param name="filter">Filter to be test</param>
129+
/// <param name="queryMustHaveResults">If the execution of search must return results</param>
130+
public void DoFilterTest(Func<FilterDescriptor<ElasticSearchProject>, Nest.BaseFilter> filter, ElasticSearchProject project, bool queryMustHaveResults)
131+
{
132+
var filterId = Filter<ElasticSearchProject>.Term(e => e.Id, project.Id.ToString());
133+
134+
var results = this._client.Search<ElasticSearchProject>(
135+
s => s.Filter(ff => ff.And(
136+
f => f.Term(e => e.Id, project.Id.ToString()),
137+
filter
138+
))
139+
);
140+
141+
Assert.True(results.IsValid, results.ConnectionStatus.Result);
142+
Assert.True(results.ConnectionStatus.Success, results.ConnectionStatus.Result);
143+
Assert.AreEqual(queryMustHaveResults ? 1 : 0, results.Total);
144+
}
145+
}
146+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using Nest;
6+
using Nest.Tests.MockData;
7+
using Nest.Tests.MockData.Domain;
8+
using NUnit.Framework;
9+
10+
namespace Nest.Tests.Integration
11+
{
12+
[TestFixture]
13+
public class CleanStateIntegrationTests : IntegrationTests
14+
{
15+
protected override void ResetIndexes()
16+
{
17+
var cloneIndex = Test.Default.DefaultIndex + "_clone";
18+
if (_client.IsValid)
19+
{
20+
var projects = NestTestData.Data;
21+
var people = NestTestData.People;
22+
23+
_client.DeleteIndex(Test.Default.DefaultIndex);
24+
_client.DeleteIndex(Test.Default.DefaultIndex + "_clone");
25+
26+
_client.CreateIndex(Test.Default.DefaultIndex, new IndexSettings());
27+
_client.CreateIndex(Test.Default.DefaultIndex + "_clone", new IndexSettings());
28+
29+
this.ResetType<ElasticSearchProject>(_client, projects);
30+
this.ResetType<Person>(_client, people);
31+
}
32+
}
33+
34+
private void ResetType<T>(IElasticClient client, IEnumerable<T> objects) where T : class {
35+
var cloneIndex = Test.Default.DefaultIndex + "_clone";
36+
var bulkParameters = new SimpleBulkParameters() { Refresh = true };
37+
38+
_client.MapFromAttributes<T>();
39+
_client.MapFromAttributes<T>(cloneIndex);
40+
41+
_client.IndexMany(objects, bulkParameters);
42+
_client.IndexMany(objects, cloneIndex, bulkParameters);
43+
}
44+
45+
protected void DeleteIndices()
46+
{
47+
var client = CreateClient();
48+
if (client.IsValid)
49+
{
50+
var cloneIndex = Test.Default.DefaultIndex + "_clone";
51+
client.DeleteMapping<ElasticSearchProject>();
52+
client.DeleteMapping<ElasticSearchProject>(cloneIndex);
53+
}
54+
}
55+
protected void BulkIndexData()
56+
{
57+
var client = CreateClient();
58+
if (client.IsValid)
59+
{
60+
var projects = NestTestData.Data;
61+
var cloneIndex = Test.Default.DefaultIndex + "_clone";
62+
var bulkParameters = new SimpleBulkParameters() { Refresh = true };
63+
client.IndexMany(projects, bulkParameters);
64+
client.IndexMany(projects, cloneIndex, bulkParameters);
65+
66+
}
67+
}
68+
69+
/// <summary>
70+
/// Execute a filter test and assert the results.
71+
/// </summary>
72+
/// <param name="project">Document to be search</param>
73+
/// <param name="filter">Filter to be test</param>
74+
/// <param name="queryMustHaveResults">If the execution of search must return results</param>
75+
public void DoFilterTest(Func<FilterDescriptor<ElasticSearchProject>, Nest.BaseFilter> filter, ElasticSearchProject project, bool queryMustHaveResults)
76+
{
77+
var filterId = Filter<ElasticSearchProject>.Term(e => e.Id, project.Id.ToString());
78+
79+
var results = this._client.Search<ElasticSearchProject>(
80+
s => s.Filter(ff => ff.And(
81+
f => f.Term(e => e.Id, project.Id.ToString()),
82+
filter
83+
))
84+
);
85+
86+
Assert.True(results.IsValid, results.ConnectionStatus.Result);
87+
Assert.True(results.ConnectionStatus.Success, results.ConnectionStatus.Result);
88+
Assert.AreEqual(queryMustHaveResults ? 1 : 0, results.Total);
89+
}
90+
}
91+
}

src/Nest.Tests.Integration/Cluster/HealthTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Nest.Tests.Integration.Cluster
44
{
55
[TestFixture]
6-
public class HealthTests : BaseElasticSearchTests
6+
public class HealthTests : IntegrationTests
77
{
88
[Test]
99
public void ClusterHealth()

src/Nest.Tests.Integration/Cluster/NodeTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace Nest.Tests.Integration.Cluster
55
{
66
[TestFixture]
7-
public class NodeTests : BaseElasticSearchTests
7+
public class NodeTests : IntegrationTests
88
{
99
[Test]
1010
public void NodeInfo()

src/Nest.Tests.Integration/ConnectionTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
namespace Nest.Tests.Integration
99
{
1010
[TestFixture]
11-
public class ConnectionTests : BaseElasticSearchTests
11+
public class ConnectionTests : IntegrationTests
1212
{
1313
[Test]
1414
public void TestSettings()

src/Nest.Tests.Integration/Core/AsyncTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
namespace Nest.Tests.Integration.Core
77
{
88
[TestFixture]
9-
public class AsyncTests : BaseElasticSearchTests
9+
public class AsyncTests : IntegrationTests
1010
{
1111

1212
[Test]

src/Nest.Tests.Integration/Core/DeleteTests.cs

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@
88
namespace Nest.Tests.Integration.Core
99
{
1010
[TestFixture]
11-
public class DeleteTests : BaseElasticSearchTests
11+
public class DeleteTests : CleanStateIntegrationTests
1212
{
13-
14-
1513
[Test]
1614
public void ShouldThowOnNullId()
1715
{
@@ -167,20 +165,20 @@ public void IndexThenDeleteUsingRefresh()
167165
public void RemoveAllByPassingAsIEnumerable()
168166
{
169167
this.ResetIndexes();
170-
var result = this._client.Search<ElasticSearchProject>(q=>q.From(0).Take(5).MatchAll());
171-
Assert.IsNotEmpty(result.Documents);
172-
173-
var totalSet = result.Documents.Count();
174-
var totalResults = result.Total;
168+
var result = this._client.Search<ElasticSearchProject>(q => q.From(0).Take(5).MatchAll());
169+
Assert.IsNotEmpty(result.Documents);
170+
171+
var totalSet = result.Documents.Count();
172+
var totalResults = result.Total;
175173
Assert.Greater(totalSet, 0);
176174

177175
var deleteResult = this._client.Delete(result.Documents, new SimpleBulkParameters() { Refresh = true });
178-
Assert.True(deleteResult.IsValid, deleteResult.ConnectionStatus.Result);
176+
Assert.True(deleteResult.IsValid, deleteResult.ConnectionStatus.Result);
179177

180-
Assert.IsNotEmpty(deleteResult.Items);
181-
Assert.True(deleteResult.Items.All(i=>i.OK));
178+
Assert.IsNotEmpty(deleteResult.Items);
179+
Assert.True(deleteResult.Items.All(i => i.OK));
182180

183-
result = this._client.Search<ElasticSearchProject>(q => q.MatchAll());
181+
result = this._client.Search<ElasticSearchProject>(q => q.MatchAll());
184182
Assert.IsNotEmpty(result.Documents);
185183
Assert.AreEqual(result.Total, totalResults - totalSet);
186184

@@ -198,11 +196,11 @@ public void RemoveAllByPassingAsIEnumerableOfBulkParameters()
198196

199197
var parameterizedDocuments = result.Documents.Select(d => new BulkParameters<ElasticSearchProject>(d) { VersionType = VersionType.Internal });
200198

201-
var deleteResult = this._client.Delete(parameterizedDocuments, new SimpleBulkParameters() { Refresh = true });
202-
Assert.True(deleteResult.IsValid, deleteResult.ConnectionStatus.Result);
199+
var deleteResult = this._client.Delete(parameterizedDocuments, new SimpleBulkParameters() { Refresh = true });
200+
Assert.True(deleteResult.IsValid, deleteResult.ConnectionStatus.Result);
203201

204-
Assert.IsNotEmpty(deleteResult.Items);
205-
Assert.True(deleteResult.Items.All(i => i.OK));
202+
Assert.IsNotEmpty(deleteResult.Items);
203+
Assert.True(deleteResult.Items.All(i => i.OK));
206204

207205
result = this._client.Search<ElasticSearchProject>(q => q.MatchAll());
208206
Assert.IsNotNull(result);

src/Nest.Tests.Integration/Core/Get/GetFullTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
namespace Nest.Tests.Integration.Core.Get
1515
{
1616
[TestFixture]
17-
public class GetFullTests : BaseElasticSearchTests
17+
public class GetFullTests : CleanStateIntegrationTests
1818
{
1919
private void DefaultAssertations(IGetResponse<ElasticSearchProject> result)
2020
{

src/Nest.Tests.Integration/Core/Get/GetMultiTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
namespace Nest.Tests.Integration.Core.Get
1616
{
1717
[TestFixture]
18-
public class GetMultiTests : BaseElasticSearchTests
18+
public class GetMultiTests : CleanStateIntegrationTests
1919
{
2020
[Test]
2121
public void GetMultiSimple()

0 commit comments

Comments
 (0)