public async Task AddVotes_Event_ReturnsCorrectResult() { const string nameToBeTestedWith = "TEST_NAME"; const string dateToBeTestedWith = "2010-01-01"; const string personVotingToBeTestedWith = "TEST_PERSON"; await WithTestDatabase.Run(async context => { var repository = new EventRepository(context); var entityToBeAdded = new EventEntity { Name = nameToBeTestedWith, DateEntities = new List <DateEntity> { new DateEntity { Date = dateToBeTestedWith } } }; var addedId = await repository.CreateEventAsync(entityToBeAdded); var addedEntity = await repository.GetAsync(addedId); Assert.Empty(DomainLogic.GetAllEventParticipants(addedEntity)); var votes = new AddVoteDto { Name = personVotingToBeTestedWith, Votes = new List <string> { dateToBeTestedWith } }; var modifiedEvent = await repository.AddVotesAsync(votes.ToEventEntity(addedId)); Assert.Single(DomainLogic.GetAllEventParticipants(modifiedEvent)); var suitableDates = DomainLogic.CalculateSuitableDatesForEvent(modifiedEvent.DateEntities, DomainLogic.GetAllEventParticipants(modifiedEvent)); Assert.Single(suitableDates); Assert.Equal(suitableDates.Select(s => s.Date).Single(), dateToBeTestedWith); }); }
public async Task Add_Event_ReturnsSameEvent() { const long idToBeTestedWith = 100; const string nameToBeTestedWith = "TEST_NAME"; const string dateToBeTestedWith = "2010-01-01"; await WithTestDatabase.Run(async context => { var repository = new EventRepository(context); var initialEntities = await repository.GetAllAsync(); Assert.Empty(initialEntities); var entityToBeAdded = new EventEntity { Id = idToBeTestedWith, Name = nameToBeTestedWith, DateEntities = new List <DateEntity> { new DateEntity { Date = dateToBeTestedWith } } }; var addedId = await repository.CreateEventAsync(entityToBeAdded); Assert.Equal(addedId, idToBeTestedWith); var entitiesAfterAdd = await repository.GetAllAsync(); Assert.Single(entitiesAfterAdd); Assert.Equal(entitiesAfterAdd.First(), entityToBeAdded); var entityGetWithId = await repository.GetAsync(addedId); Assert.Equal(entityGetWithId, entityToBeAdded); }); }