public async Task Consume_MemberAlreadyAdminInClub_DoesNothing() { var @event = new ClubCreatedEvent() { ClubId = Guid.NewGuid(), AdminId = Guid.NewGuid() }; using (var context = _factory.CreateContext()) { context.Users.Add(new User() { UserId = @event.AdminId }); context.Clubs.Add(new Club() { ClubId = @event.ClubId }); context.Roles.Add(new Role() { ClubId = @event.ClubId, UserRole = "Admin", UserId = @event.AdminId }); context.SaveChanges(); } await SendEvent(@event); using (var context = _factory.CreateContext()) { Assert.That(context.Roles.Count(), Is.EqualTo(1)); Assert.That(context.Roles.First().UserRole, Is.EqualTo("Admin")); Assert.That(context.Clubs.Count(), Is.EqualTo(1)); } }
public async Task Consume_2Location_ExpectedRoomsCreated() { var @event = new ClubCreatedEvent() { ClubId = Guid.NewGuid(), Locations = new List <string>() { "Test", "Test2" } }; await SendEvent(@event); using (var context = _factory.CreateContext()) { var club = context.Clubs .Include(club => club.Rooms) .FirstOrDefault(club => club.ClubId == @event.ClubId); Assert.That(club.Rooms.Count, Is.EqualTo(2)); Assert.That(club.Rooms.Find(room => room.Name == "Test"), Is.Not.Null); Assert.That(club.Rooms.Find(room => room.Name == "Test2"), Is.Not.Null); } await _publishEndpoint.Received(2).Publish(Arg.Any <RoomCreatedEvent>()); }
public async Task Consume_ClubDoesNotExistButUserDoes_Succeeds() { var @event = new ClubCreatedEvent() { ClubId = Guid.NewGuid(), AdminId = Guid.NewGuid() }; using (var context = _factory.CreateContext()) { context.Users.Add(new User() { UserId = @event.AdminId }); context.SaveChanges(); } await SendEvent(@event); using (var context = _factory.CreateContext()) { Assert.That(context.Roles.Count(), Is.EqualTo(1)); Assert.That(context.Roles.First().UserRole, Is.EqualTo("Admin")); Assert.That(context.Clubs.Count(), Is.EqualTo(1)); } }
private void ImportClubs(IEnumerable <Club> clubs, CloudTable eventsTable) { var tasks = new List <Task>(); foreach (var club in clubs) { var storage = new ClubCreatedEvent(club.ClubName, club.CoachName, club.Email); var createdEvent = new Event(club.Id, 0, "clubCreated", JsonConvert.SerializeObject(storage)); var operation = TableOperation.Insert(createdEvent); tasks.Add(eventsTable.ExecuteAsync(operation)); } Task.WaitAll(tasks.ToArray()); }
public async Task Consume_ClubDoesNotExist_Creates() { var @event = new ClubCreatedEvent() { ClubId = Guid.NewGuid(), }; await SendEvent(@event); using (var context = _factory.CreateContext()) { Assert.That(context.Clubs.Count(), Is.EqualTo(1)); } }
public async Task Consume_ClubHaventBeenCreated_ClubHaveBeenAdded() { var @event = new ClubCreatedEvent() { ClubId = Guid.NewGuid() }; await SendEvent(@event); using (var context = _factory.CreateContext()) { var club = context.Clubs.FirstOrDefault(club => club.ClubId == @event.ClubId); Assert.That(club, Is.Not.Null); Assert.That(context.Clubs.Count(), Is.EqualTo(1)); } }
public async Task Consume_NoLocations_DefaultRoomCreated() { var @event = new ClubCreatedEvent() { ClubId = Guid.NewGuid() }; await SendEvent(@event); using (var context = _factory.CreateContext()) { var club = context.Clubs .Include(club => club.Rooms) .FirstOrDefault(club => club.ClubId == @event.ClubId); Assert.That(club.Rooms.Count, Is.EqualTo(1)); Assert.That(club.Rooms.First().Name, Is.EqualTo("Default")); } await _publishEndpoint.Received(1).Publish(Arg.Any <RoomCreatedEvent>()); }
public async Task Consume_ClubDoesExist_DoesNotCreateAnother() { var @event = new ClubCreatedEvent() { ClubId = Guid.NewGuid(), }; using (var context = _factory.CreateContext()) { context.Clubs.Add(new Club() { ClubId = @event.ClubId }); context.SaveChanges(); } await SendEvent(@event); using (var context = _factory.CreateContext()) { Assert.That(context.Clubs.Count(), Is.EqualTo(1)); } }