Merge pull request #43 from khanhna/feature/read_process_integration_test

Add integration test for native read filter operations
This commit is contained in:
Alexandre SPIESER
2022-01-11 14:05:52 +00:00
committed by GitHub
2 changed files with 132 additions and 1 deletions
@@ -8,7 +8,6 @@
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.2" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="2.1.2" /> <PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="2.1.2" />
<PackageReference Include="MongoDB.Driver" Version="2.13.2" /> <PackageReference Include="MongoDB.Driver" Version="2.13.2" />
<PackageReference Include="MongoDbGenericRepository" Version="1.4.8" />
<PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.console" Version="2.4.1"> <PackageReference Include="xunit.runner.console" Version="2.4.1">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
@@ -30,4 +29,8 @@
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MongoDbGenericRepository\MongoDbGenericRepository.csproj" />
</ItemGroup>
</Project> </Project>
@@ -205,6 +205,30 @@ namespace CoreIntegrationTests.Infrastructure
Assert.True(null != result, GetTestName()); Assert.True(null != result, GetTestName());
} }
[Fact]
public async Task GetOneByFilterDefinitionAsync()
{
// Arrange
var document = CreateTestDocument();
SUT.AddOne<T, TKey>(document);
// Act
var result = await SUT.GetOneAsync<T, TKey>(Builders<T>.Filter.Eq(x => x.Id, document.Id), null, PartitionKey);
// Assert
Assert.True(null != result, GetTestName());
}
[Fact]
public void GetOneByFilterDefinition()
{
// Arrange
var document = CreateTestDocument();
SUT.AddOne<T, TKey>(document);
// Act
var result = SUT.GetOne<T, TKey>(Builders<T>.Filter.Eq(x => x.Id, document.Id), null, PartitionKey);
// Assert
Assert.True(null != result, GetTestName());
}
[Fact] [Fact]
public async Task GetOneAsync() public async Task GetOneAsync()
{ {
@@ -242,6 +266,30 @@ namespace CoreIntegrationTests.Infrastructure
Assert.True(1 == count, GetTestName()); Assert.True(1 == count, GetTestName());
} }
[Fact]
public async Task AnyAsyncByDefinitionReturnsTrue()
{
// Arrange
var document = CreateTestDocument();
SUT.AddOne<T, TKey>(document);
// Act
var result = await SUT.AnyAsync<T, TKey>(Builders<T>.Filter.Eq(x => x.Id, document.Id), null, PartitionKey);
// Assert
Assert.True(result, GetTestName());
}
[Fact]
public async Task AnyAsyncByDefinitionReturnsFalse()
{
// Arrange
var document = CreateTestDocument();
SUT.AddOne<T, TKey>(document);
// Act
var result = await SUT.AnyAsync<T, TKey>(Builders<T>.Filter.Eq(x => x.Id, document.Init<TKey>()), null, PartitionKey);
// Assert
Assert.False(result, GetTestName());
}
[Fact] [Fact]
public async Task AnyAsyncReturnsTrue() public async Task AnyAsyncReturnsTrue()
{ {
@@ -266,6 +314,30 @@ namespace CoreIntegrationTests.Infrastructure
Assert.False(result, GetTestName()); Assert.False(result, GetTestName());
} }
[Fact]
public void AnyByDefinitionReturnsTrue()
{
// Arrange
var document = CreateTestDocument();
SUT.AddOne<T, TKey>(document);
// Act
var result = SUT.Any<T, TKey>(Builders<T>.Filter.Eq(x => x.Id, document.Id), null, PartitionKey);
// Assert
Assert.True(result, GetTestName());
}
[Fact]
public void AnyByDefinitionReturnsFalse()
{
// Arrange
var document = CreateTestDocument();
SUT.AddOne<T, TKey>(document);
// Act
var result = SUT.Any<T, TKey>(Builders<T>.Filter.Eq(x => x.Id, document.Init<TKey>()), null, PartitionKey);
// Assert
Assert.False(result, GetTestName());
}
[Fact] [Fact]
public void AnyReturnsTrue() public void AnyReturnsTrue()
{ {
@@ -290,6 +362,34 @@ namespace CoreIntegrationTests.Infrastructure
Assert.False(result, GetTestName()); Assert.False(result, GetTestName());
} }
[Fact]
public async Task GetAllByDefinitionAsync()
{
// Arrange
var documents = CreateTestDocuments(5);
var content = GetContent();
documents.ForEach(e => e.SomeContent = content);
SUT.AddMany<T, TKey>(documents);
// Act
var result = await SUT.GetAllAsync<T, TKey>(Builders<T>.Filter.Eq(x => x.SomeContent, content), null, PartitionKey);
// Assert
Assert.True(5 == result.Count, GetTestName());
}
[Fact]
public void GetAllByDefinition()
{
// Arrange
var documents = CreateTestDocuments(5);
var content = GetContent();
documents.ForEach(e => e.SomeContent = content);
SUT.AddMany<T, TKey>(documents);
// Act
var result = SUT.GetAll<T, TKey>(Builders<T>.Filter.Eq(x => x.SomeContent, content), null, PartitionKey);
// Assert
Assert.True(5 == result.Count, GetTestName());
}
[Fact] [Fact]
public async Task GetAllAsync() public async Task GetAllAsync()
{ {
@@ -318,6 +418,34 @@ namespace CoreIntegrationTests.Infrastructure
Assert.True(5 == result.Count, GetTestName()); Assert.True(5 == result.Count, GetTestName());
} }
[Fact]
public async Task CountByDefinitionAsync()
{
// Arrange
var documents = CreateTestDocuments(5);
var content = GetContent();
documents.ForEach(e => e.SomeContent = content);
SUT.AddMany<T, TKey>(documents);
// Act
var result = await SUT.CountAsync<T, TKey>(Builders<T>.Filter.Eq(x => x.SomeContent, content), null, PartitionKey);
// Assert
Assert.True(5 == result, GetTestName());
}
[Fact]
public void CountByDefinition()
{
// Arrange
var documents = CreateTestDocuments(5);
var content = GetContent();
documents.ForEach(e => e.SomeContent = content);
SUT.AddMany<T, TKey>(documents);
// Act
var result = SUT.Count<T, TKey>(Builders<T>.Filter.Eq(x => x.SomeContent, content), null, PartitionKey);
// Assert
Assert.True(5 == result, GetTestName());
}
[Fact] [Fact]
public async Task CountAsync() public async Task CountAsync()
{ {