Add integration test for native read filter operations

This commit is contained in:
Khanh Nguyen
2021-12-12 11:02:17 +07:00
parent f74254b411
commit f888d5996b
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.Extensions.Identity.Stores" Version="2.1.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.runner.console" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
@@ -30,4 +29,8 @@
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MongoDbGenericRepository\MongoDbGenericRepository.csproj" />
</ItemGroup>
</Project>
@@ -205,6 +205,30 @@ namespace CoreIntegrationTests.Infrastructure
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]
public async Task GetOneAsync()
{
@@ -242,6 +266,30 @@ namespace CoreIntegrationTests.Infrastructure
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]
public async Task AnyAsyncReturnsTrue()
{
@@ -266,6 +314,30 @@ namespace CoreIntegrationTests.Infrastructure
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]
public void AnyReturnsTrue()
{
@@ -290,6 +362,34 @@ namespace CoreIntegrationTests.Infrastructure
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]
public async Task GetAllAsync()
{
@@ -318,6 +418,34 @@ namespace CoreIntegrationTests.Infrastructure
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]
public async Task CountAsync()
{