public async Task Consume_InstructorDoesExist_DoesNotCreateAnother()
        {
            var @event = new InstructorAddedEvent()
            {
                ClubId = Guid.NewGuid(),
                UserId = Guid.NewGuid()
            };

            using (var context = _factory.CreateContext())
            {
                context.Clubs.Add(new Club()
                {
                    ClubId = @event.ClubId
                });
                context.Instructors.Add(new Instructor()
                {
                    ClubId       = @event.ClubId,
                    InstructorId = @event.UserId
                });
                context.SaveChanges();
            }

            await SendEvent(@event);


            using (var context = _factory.CreateContext())
            {
                Assert.That(context.Instructors.Count(), Is.EqualTo(1));
            }
        }
Esempio n. 2
0
        public async Task <Role> AddInstructorAsync(Guid clubId, Guid instructorId)
        {
            await IsAdminIn(clubId);

            var role = await _context.Roles.FindOrThrowAsync(instructorId, clubId);

            if (role.ClubSubscriptionId == null)
            {
                throw new QueryException("User is not member in club");
            }

            if (role.UserRole == "Member")
            {
                role.UserRole = "Instructor";
                _context.Roles.Update(role);
                var @event = new InstructorAddedEvent()
                {
                    ClubId = clubId,
                    UserId = instructorId
                };
                await _eventService.SaveEventAndDbContextChangesAsync(@event);

                await _eventService.PublishEventAsync(@event);
            }

            return(role);
        }
        public async Task Consume_ClubDoesNotExist_DoesNotCreate()
        {
            var @event = new InstructorAddedEvent()
            {
                ClubId = Guid.NewGuid(),
                UserId = Guid.NewGuid()
            };

            await SendEvent(@event);


            using (var context = _factory.CreateContext())
            {
                Assert.That(context.Instructors.Count(), Is.EqualTo(0));
            }
        }