using IntegrationTests.Infrastructure; using MongoDB.Bson.Serialization.Attributes; using MongoDbGenericRepository.Models; using NUnit.Framework; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace IntegrationTests { public class CreateTestsPartitionedTKeyDocument : IDocument, IPartitionedDocument { [BsonId] public Guid Id { get; set; } public int Version { get; set; } public CreateTestsPartitionedTKeyDocument() { Id = Guid.NewGuid(); Version = 2; PartitionKey = "TestPartitionKey"; } public string PartitionKey { get; set; } public string SomeContent { get; set; } } public class CreatePartitionedTKeyTests : BaseMongoDbRepositoryTests { [Test] public void PartitionedAddOne() { // Arrange var document = new CreateTestsPartitionedTKeyDocument(); // Act SUT.AddOne(document); // Assert long count = SUT.Count(e => e.Id == document.Id, PartitionKey); Assert.AreEqual(1, count); } [Test] public async Task PartitionedAddOneAsync() { // Arrange var document = new CreateTestsPartitionedTKeyDocument(); // Act await SUT.AddOneAsync(document); // Assert long count = SUT.Count(e => e.Id == document.Id, PartitionKey); Assert.AreEqual(1, count); } [Test] public void PartitionedAddMany() { // Arrange var documents = new List { new CreateTestsPartitionedTKeyDocument(), new CreateTestsPartitionedTKeyDocument() }; // Act SUT.AddMany(documents); // Assert long count = SUT.Count(e => e.Id == documents[0].Id || e.Id == documents[1].Id, PartitionKey); Assert.AreEqual(2, count); } [Test] public async Task PartitionedAddManyAsync() { // Arrange var documents = new List { new CreateTestsPartitionedTKeyDocument(), new CreateTestsPartitionedTKeyDocument() }; // Act await SUT.AddManyAsync(documents); // Assert long count = SUT.Count(e => e.Id == documents[0].Id || e.Id == documents[1].Id, PartitionKey); Assert.AreEqual(2, count); } } }