using IntegrationTests.Infrastructure; using MongoDB.Bson.Serialization.Attributes; using MongoDbGenericRepository.Models; using System; using System.Collections.Generic; using System.Text; using Xunit; using Microsoft.AspNetCore.Identity; using System.Threading.Tasks; namespace CoreIntegrationTests { public class MongoIdentityUser : IdentityUser, IDocument where TKey : IEquatable { public int Version { get; set; } } public class IdentityUserTest : MongoIdentityUser, IDocument { public IdentityUserTest() { Id = Guid.NewGuid(); Version = 2; } public string SomeContent { get; set; } } public class IdentityUserTests : BaseMongoDbRepositoryTests { [Fact] public void AddOne() { // Arrange var document = new IdentityUserTest(); // Act SUT.AddOne(document); // Assert long count = SUT.Count(e => e.Id == document.Id); Assert.Equal(1, count); } [Fact] public async Task AddOneAsync() { // Arrange var document = new IdentityUserTest(); // Act await SUT.AddOneAsync(document); // Assert long count = SUT.Count(e => e.Id == document.Id); Assert.Equal(1, count); } [Fact] public void AddMany() { // Arrange var documents = new List { new IdentityUserTest(), new IdentityUserTest() }; // Act SUT.AddMany(documents); // Assert long count = SUT.Count(e => e.Id == documents[0].Id || e.Id == documents[1].Id); Assert.Equal(2, count); } [Fact] public async Task AddManyAsync() { // Arrange var documents = new List { new IdentityUserTest(), new IdentityUserTest() }; // Act await SUT.AddManyAsync(documents); // Assert long count = SUT.Count(e => e.Id == documents[0].Id || e.Id == documents[1].Id); Assert.Equal(2, count); } } }