112 lines
3.5 KiB
C#
112 lines
3.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Xunit;
|
|
using System.Linq;
|
|
using LCU.Shared.Collections.RepoApiLib.Models;
|
|
using LCU.Shared.Collections.RepoApiLib.Repositories;
|
|
using LCU.Shared.Collections.RepoApiLib.Persistence;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace LCU.API.Collections.RepoApiTests.Repository
|
|
{
|
|
public class ExternalUserRepository : DbContextFromJson
|
|
{
|
|
private readonly AppDbContext _dbContext;
|
|
|
|
public ExternalUserRepository()
|
|
{
|
|
_dbContext = SqliteDbContext;
|
|
}
|
|
|
|
[Fact]
|
|
public async void External_Users_Sync_Ok()
|
|
{
|
|
var repository = new Shared.Collections.RepoApiLib.Repositories.ExternalUserRepository(_dbContext);
|
|
// act
|
|
|
|
var list = new List<ExternalUser>()
|
|
{
|
|
new ExternalUser()
|
|
{
|
|
ReferenceId = 100,
|
|
Code = "gfrick",
|
|
Name = "George Frick"
|
|
},
|
|
new ExternalUser()
|
|
{
|
|
ReferenceId = 101,
|
|
Code = "astiyer",
|
|
Name = "Alex Stiyer"
|
|
},
|
|
new ExternalUser()
|
|
{
|
|
ReferenceId = 102,
|
|
Code = "mfleming",
|
|
Name = "Mitchel Flemming"
|
|
}
|
|
};
|
|
|
|
await repository.SynchronizeSet(list);
|
|
await _dbContext.SaveChangesAsync();
|
|
// fake restart the context / transaction
|
|
foreach (var user in list)
|
|
{
|
|
_dbContext.Entry(user).State = EntityState.Detached;
|
|
}
|
|
|
|
//assert finds multiple
|
|
var results = await repository.ListAsync();
|
|
Assert.NotNull(results);
|
|
Assert.NotEmpty(results);
|
|
Assert.Equal(3 , results.Count());
|
|
|
|
//assert finds one
|
|
var result = await repository.FindByReferenceIdAsync(101);
|
|
Assert.NotNull(result);
|
|
Assert.Equal("astiyer", result.Code);
|
|
|
|
var list2 = new List<ExternalUser>()
|
|
{
|
|
new ExternalUser()
|
|
{
|
|
ReferenceId = 100,
|
|
Code = "gfrick",
|
|
Name = "George Frick"
|
|
},
|
|
new ExternalUser()
|
|
{
|
|
ReferenceId = 101,
|
|
Code = "astiyer",
|
|
Name = "Alex Stiyer"
|
|
},
|
|
new ExternalUser()
|
|
{
|
|
ReferenceId = 103,
|
|
Code = "kutley",
|
|
Name = "Kyle Utley"
|
|
},
|
|
new ExternalUser()
|
|
{
|
|
ReferenceId = 102,
|
|
Code = "mfleming",
|
|
Name = "Mitchel Flemming"
|
|
}
|
|
};
|
|
|
|
await repository.SynchronizeSet(list2);
|
|
await _dbContext.SaveChangesAsync();
|
|
|
|
//assert finds multiple
|
|
results = await repository.ListAsync();
|
|
Assert.NotNull(results);
|
|
Assert.NotEmpty(results);
|
|
Assert.Equal(4 , results.Count());
|
|
|
|
//assert finds one
|
|
result = await repository.FindByReferenceIdAsync(103);
|
|
Assert.NotNull(result);
|
|
Assert.Equal("kutley", result.Code);
|
|
}
|
|
|
|
}
|
|
} |