protected override void Seed(AbsenceManagementContext context) { var systemUser = context.People .FirstOrDefault(p => p.DataSource == "SYSTEM" && p.DataSourceId == "0"); if (systemUser == null) { context.People.AddOrUpdate( PersonBuilder .CreatePerson("System", "User") .WithDataSource("SYSTEM", "0") .Build() ); context.SaveChanges(); systemUser = context.People .FirstOrDefault(p => p.DataSource == "SYSTEM" && p.DataSourceId == "0"); context.Users.Add(new User { Person = systemUser, PersonId = systemUser.Id, UserName = "******", Email = "*****@*****.**" }); } }
private static IEnumerable <Person> GetPeople() { yield return(PersonBuilder .CreatePerson("John", "Doe") .WithDataSource("hr", "154785") .Build()); yield return(PersonBuilder .CreatePerson("Jane", "Doe") .WithDataSource("hr", "154954") .Build()); }
public static AbsenceManagementContext GetPersistentAbsenceManagentContext( IEnumerable <Person> people = null, IEnumerable <Relation> relations = null ) { string id = $"{DateTime.Now.Ticks.ToString()}-{_random.Next(int.MinValue, int.MaxValue)}"; Thread.Sleep(1); using (var ctx = SetupPersistentAbsenceManagementContext( id: id, people: people ?? new Person[] { PersonBuilder.CreatePerson("John", "Doe").Build() }, relations: relations ?? TestData.GetRelationTestData().Select(o => (Relation)o[0]) )) { } return(SetupPersistentAbsenceManagementContext(id: id)); }
public void Can_Add() { // Arrange var sut = new EFDisconnectedPersonRepository( EFTestData.GetTransientAbsenceManagementContext() ); var user = PersonBuilder.CreatePerson("John", "Doe").Build(); // Act sut.Add(user); var actual = sut.GetAll().FirstOrDefault(p => p.FirstName.Equals("John")); // Assert Assert.Equal(1, sut.GetAll().Count()); Assert.NotNull(actual); Assert.Equal(user.FirstName, actual.FirstName); Assert.Equal(user.LastName, actual.LastName); }
public static IEnumerable <object[]> GetRelationTestData() { var master = PersonBuilder .CreatePerson("Harley", "Powell") .WithDataSource("HR", "30031984") .Build(); return(GetPeopleTestData() .Select(o => o[0]) .Cast <Person>() .Select(p => RelationBuilder .CreateRelation(RelationType.ManagerToSubordinate) .ForMaster(master) .WithSlave(p) .Build() ) .Select(r => new object[] { r })); }
public void Can_Update() { using (var ctx = EFTestData.GetPersistentAbsenceManagentContext()) { // Arrange var sut = new EFDisconnectedPersonRepository(ctx); var userId = sut.GetAll().FirstOrDefault().Id; // Act var actual = PersonBuilder.CreatePerson("Johnnie", "Doe").Build(); TestData.SetPrivateProperty(actual, nameof(Person.Id), userId); sut.Update(actual); // Assert Assert.Equal(ctx.People.Count(), sut.GetAll().Count()); Assert.NotNull(actual); Assert.Equal("Johnnie", actual.FirstName); Assert.Equal("Doe", actual.LastName); } }
static void Main(string[] args) { // той също е част от creational Design Patterns защото връща създаден обект // 1. Правя си клас, който ще създава инстанция на private обект. Чрез public Properties ще мога да му попълвам стойностите и накрая ще може да ви се върне нов обект със записани стойности. // 1. Правя си един class Person който има Properties: First, Surname, LastName, Age, Address // 2. Правя си PersonBuilder който вътре в себе си прави инстанция на Person и я държи скрита // 3. Правя методи в PersonBuilder, който да приемат някакви стойности през параметър на метода и да ги сетват на Person. Задължително трябва да връщат this за да може да продължим с точка следващ метод - .FirstName("Ivan").LastName("Pepkin".Age(12)) // 4. За да може да връща целия Person с попълнените му данни трябва да направя един метод, който връща Person-a var personBuilder = new PersonBuilder(); var person = personBuilder .CreatePerson() .WithFirstName("Ivan") .WithSurname("Penchev") .WithLastname("Gorilov") .WithAge(33) .WithAddress("Sofia") .Build(); }
public static IEnumerable <object[]> GetPeopleTestData() { yield return(new object[] { PersonBuilder .CreatePerson("Yves", "Schelpe") .WithDataSource("HR", "11101985") .Build() }); yield return(new object[] { PersonBuilder .CreatePerson("Ramiro", "Solomon") .WithDataSource("HR", "15051945") .Build() }); yield return(new object[] { PersonBuilder .CreatePerson("Sonya", "Sharpe") .WithDataSource("HR", "29101966") .Build() }); }