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));
            }
        }
Exemple #4
0
        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));
            }
        }
Exemple #6
0
        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));
            }
        }