diff --git a/IntegrationTests/IntegrationTests.csproj b/IntegrationTests/IntegrationTests.csproj
index 39bf8af..9567113 100644
--- a/IntegrationTests/IntegrationTests.csproj
+++ b/IntegrationTests/IntegrationTests.csproj
@@ -62,6 +62,7 @@
+
diff --git a/IntegrationTests/ReadPartitionedTests.cs b/IntegrationTests/ReadPartitionedTests.cs
new file mode 100644
index 0000000..e76609b
--- /dev/null
+++ b/IntegrationTests/ReadPartitionedTests.cs
@@ -0,0 +1,169 @@
+using IntegrationTests.Infrastructure;
+using MongoDbGenericRepository.Models;
+using NUnit.Framework;
+using System;
+using System.Threading.Tasks;
+
+namespace IntegrationTests
+{
+ public class ReadTestsPartitionedDocument : PartitionedDocument
+ {
+ public ReadTestsPartitionedDocument() : base("TestPartitionKey")
+ {
+ Version = 1;
+ }
+ public string SomeContent { get; set; }
+ }
+
+ public class ReadPartitionedTests : BaseMongoDbRepositoryTests
+ {
+ [Test]
+ public async Task PartitionedGetById()
+ {
+ // Arrange
+ var document = CreateTestDocument();
+ SUT.AddOne(document);
+ // Act
+ var result = await SUT.GetByIdAsync(document.Id, PartitionKey);
+ // Assert
+ Assert.IsNotNull(result);
+ }
+
+ [Test]
+ public async Task PartitionedGetOneAsync()
+ {
+ // Arrange
+ var document = CreateTestDocument();
+ SUT.AddOne(document);
+ // Act
+ var result = await SUT.GetOneAsync(x => x.Id == document.Id, PartitionKey);
+ // Assert
+ Assert.IsNotNull(result);
+ }
+
+ [Test]
+ public void PartitionedGetOne()
+ {
+ // Arrange
+ var document = CreateTestDocument();
+ SUT.AddOne(document);
+ // Act
+ var result = SUT.GetOne(x => x.Id == document.Id, PartitionKey);
+ // Assert
+ Assert.IsNotNull(result);
+ }
+
+ [Test]
+ public void PartitionedGetCursor()
+ {
+ // Arrange
+ var document = CreateTestDocument();
+ SUT.AddOne(document);
+ // Act
+ var cursor = SUT.GetCursor(x => x.Id == document.Id, PartitionKey);
+ var count = cursor.Count();
+ // Assert
+ Assert.AreEqual(1, count);
+ }
+
+ [Test]
+ public async Task PartitionedAnyAsyncReturnsTrue()
+ {
+ // Arrange
+ var document = CreateTestDocument();
+ SUT.AddOne(document);
+ // Act
+ var result = await SUT.AnyAsync(x => x.Id == document.Id, PartitionKey);
+ // Assert
+ Assert.AreEqual(true, result);
+ }
+
+ [Test]
+ public async Task PartitionedAnyAsyncReturnsFalse()
+ {
+ // Arrange
+ var document = CreateTestDocument();
+ SUT.AddOne(document);
+ // Act
+ var result = await SUT.AnyAsync(x => x.Id == Guid.NewGuid(), PartitionKey);
+ // Assert
+ Assert.AreEqual(false, result);
+ }
+
+ [Test]
+ public void PartitionedAnyReturnsTrue()
+ {
+ // Arrange
+ var document = CreateTestDocument();
+ SUT.AddOne(document);
+ // Act
+ var result = SUT.Any(x => x.Id == document.Id, PartitionKey);
+ // Assert
+ Assert.AreEqual(true, result);
+ }
+
+ [Test]
+ public void PartitionedAnyReturnsFalse()
+ {
+ // Arrange
+ var document = CreateTestDocument();
+ SUT.AddOne(document);
+ // Act
+ var result = SUT.Any(x => x.Id == Guid.NewGuid(), PartitionKey);
+ // Assert
+ Assert.AreEqual(false, result);
+ }
+
+ [Test]
+ public async Task PartitionedGetAllAsync()
+ {
+ // Arrange
+ var documents = CreateTestDocuments(5);
+ documents.ForEach(e => e.SomeContent = "GetAllAsyncContent");
+ SUT.AddMany(documents);
+ // Act
+ var result = await SUT.GetAllAsync(x => x.SomeContent == "GetAllAsyncContent", PartitionKey);
+ // Assert
+ Assert.AreEqual(5, result.Count);
+ }
+
+ [Test]
+ public void PartitionedGetAll()
+ {
+ // Arrange
+ var documents = CreateTestDocuments(5);
+ documents.ForEach(e => e.SomeContent = "GetAllContent");
+ SUT.AddMany(documents);
+ // Act
+ var result = SUT.GetAll(x => x.SomeContent == "GetAllContent", PartitionKey);
+ // Assert
+ Assert.AreEqual(5, result.Count);
+ }
+
+ [Test]
+ public async Task PartitionedCountAsync()
+ {
+ // Arrange
+ var documents = CreateTestDocuments(5);
+ documents.ForEach(e => e.SomeContent = "CountAsyncContent");
+ SUT.AddMany(documents);
+ // Act
+ var result = await SUT.CountAsync(x => x.SomeContent == "CountAsyncContent", PartitionKey);
+ // Assert
+ Assert.AreEqual(5, result);
+ }
+
+ [Test]
+ public void PartitionedCount()
+ {
+ // Arrange
+ var documents = CreateTestDocuments(5);
+ documents.ForEach(e => e.SomeContent = "CountContent");
+ SUT.AddMany(documents);
+ // Act
+ var result = SUT.Count(x => x.SomeContent == "CountContent", PartitionKey);
+ // Assert
+ Assert.AreEqual(5, result);
+ }
+ }
+}
diff --git a/IntegrationTests/ReadTests.cs b/IntegrationTests/ReadTests.cs
index 3ef6031..ccdf48c 100644
--- a/IntegrationTests/ReadTests.cs
+++ b/IntegrationTests/ReadTests.cs
@@ -54,11 +54,6 @@ namespace IntegrationTests
Assert.IsNotNull(result);
}
- private class ProjectClass
- {
- public string Content { get; set; }
- }
-
[Test]
public void GetCursor()
{
@@ -145,5 +140,31 @@ namespace IntegrationTests
// Assert
Assert.AreEqual(5, result.Count);
}
+
+ [Test]
+ public async Task CountAsync()
+ {
+ // Arrange
+ var documents = CreateTestDocuments(5);
+ documents.ForEach(e => e.SomeContent = "CountAsyncContent");
+ SUT.AddMany(documents);
+ // Act
+ var result = await SUT.CountAsync(x => x.SomeContent == "CountAsyncContent");
+ // Assert
+ Assert.AreEqual(5, result);
+ }
+
+ [Test]
+ public void Count()
+ {
+ // Arrange
+ var documents = CreateTestDocuments(5);
+ documents.ForEach(e => e.SomeContent = "CountContent");
+ SUT.AddMany(documents);
+ // Act
+ var result = SUT.Count(x => x.SomeContent == "CountContent");
+ // Assert
+ Assert.AreEqual(5, result);
+ }
}
}