public async Task Should_ThrowException_When_CreatingMeetup_If_HasMeetupInToday()
        {
            var meetupRepository = new MeetupRepository(_fixture.dbContext);
            var meetupPolicy     = new MeetupPolicy(meetupRepository);

            var mockIdentityService = new Mock <IIdentityService>();

            mockIdentityService.Setup((x) => x.GetUserId()).Returns("123");

            var createMeetupCommandHandler = new CreateMeetupCommandHandler(meetupRepository, meetupPolicy, mockIdentityService.Object);
            var cancellationToken          = new CancellationToken();

            var createMeetupCommand = new CreateMeetupCommand
            {
                Subject     = "DDD",
                Description = "DDD Practices",
                When        = DateTime.Now.AddDays(5),
                Address     = "YTÜ Teknopark"
            };

            var exception = await Assert.ThrowsAsync <MeetupDomainException>(async() =>
            {
                await createMeetupCommandHandler.Handle(createMeetupCommand, cancellationToken);
            });

            Assert.Equal("A maximum of one meetup is defined", exception.Message);
        }
        public async Task Should_Success_Joining_ToMetup()
        {
            var mockIdentityService = new Mock <IIdentityService>();

            mockIdentityService.Setup((x) => x.GetUserId()).Returns("456");

            var mockMeetupPolicy = new Mock <IMeetupPolicy>();

            mockMeetupPolicy.Setup((x) => x.CheckCanDefineMeetup(It.IsAny <string>(), It.IsAny <DateTime>())).Callback(() => { });

            var meetup = new Meetup(
                organizerId: "123",
                subject: "DDD",
                when: DateTime.Now.AddDays(1),
                description: "DDD Practices",
                location: new Location("YTÜ Teknopark"),
                policy: mockMeetupPolicy.Object);

            _fixture.dbContext.Add(meetup);

            var meetupRepository = new MeetupRepository(_fixture.dbContext);

            var joinMeetupCommandHandler = new JoinMeetupCommandHandler(meetupRepository, mockIdentityService.Object);
            var cancellationToken        = new CancellationToken();

            var joinMeetupCommand = new JoinMeetupCommand
            {
                MeetupId = meetup.Id
            };

            await joinMeetupCommandHandler.Handle(joinMeetupCommand, cancellationToken);

            Assert.Single(_fixture.dbContext.Meetups.FirstOrDefault().Participants);
        }
 public CancelSeatReservationCommandHandler(
     MeetupRepository repository,
     MeetupReadModelUpdater readModelUpdater)
 {
     _repository       = repository;
     _readModelUpdater = readModelUpdater;
 }
 public ReserveSeatCommandHandler(
     MeetupRepository meetupRepository,
     MeetupReadModelUpdater readModelUpdater)
 {
     _repository       = meetupRepository;
     _readModelUpdater = readModelUpdater;
 }
Example #5
0
 public CreateMeetupCommandHandler(
     MeetupRepository repository,
     MeetupReadModelUpdater readModelUpdater)
 {
     _repository       = repository;
     _readModelUpdater = readModelUpdater;
 }
        public async Task Should_Succes_When_CreatingMeetup()
        {
            var meetupRepository = new MeetupRepository(_fixture.dbContext);
            var meetupPolicy     = new MeetupPolicy(meetupRepository);

            var mockIdentityService = new Mock <IIdentityService>();

            mockIdentityService.Setup((x) => x.GetUserId()).Returns("123");

            var createMeetupCommandHandler = new CreateMeetupCommandHandler(meetupRepository, meetupPolicy, mockIdentityService.Object);
            var cancellationToken          = new CancellationToken();

            var createMeetupCommand = new CreateMeetupCommand
            {
                Subject     = "DDD",
                Description = "DDD Practices",
                When        = DateTime.Now.AddDays(5),
                Address     = "YTÜ Teknopark"
            };

            await createMeetupCommandHandler.Handle(createMeetupCommand, cancellationToken);

            Assert.Equal(1, _fixture.dbContext.Meetups.Count());
            Assert.True(_fixture.IsVerifiedMeetupAnnouncedDomainEventHandler);

            _fixture.IsVerifiedMeetupAnnouncedDomainEventHandler = false;
        }
Example #7
0
        public App(string pushNotifParameter = null)
        {
            //INITIALIZATION
            if (AppContext == null)
            {
                IGeolocator                 geoLocator              = CrossGeolocator.Current;
                IRepository                 repository              = new AzureRepository("http://xdevmessaging.azurewebsites.net/");
                IPositionUpdater            positionUpdater         = new PositionUpdater(repository);
                IDisplayNameProvider <User> userDisplayNameProvider = new UserDisplayNameProvider();
                MeetupRepository            meetupRepository        = new MeetupRepository();
                AppContext = new AppContext(repository, geoLocator, positionUpdater, userDisplayNameProvider, meetupRepository);
            }

            //Check stored data
            //if (AppContext.IsUserStored)
            //{
            //    AppContext.LoginFromStorageAsync().Wait();
            //    var mapPage = new NavigationPage(new MapPage(AppContext));
            //    MainPage = mapPage;
            //}
            //else
            //{
            var loginPage = new NavigationPage(new LoginPage(AppContext));

            MainPage = loginPage;
            //}
        }
Example #8
0
        public async Task Should_ThrowException_When_AddingComment_If_ParticipantIsNot()
        {
            var mockIdentityService = new Mock <IIdentityService>();

            mockIdentityService.Setup((x) => x.GetUserId()).Returns("456");

            var mockMeetupPolicy = new Mock <IMeetupPolicy>();

            mockMeetupPolicy.Setup((x) => x.CheckCanDefineMeetup(It.IsAny <string>(), It.IsAny <DateTime>())).Callback(() => { });

            var meetup = new Meetup(
                organizerId: "123",
                subject: "DDD",
                when: DateTime.Now.AddDays(1),
                description: "DDD Practices",
                location: new Location("YTÜ Teknopark"),
                policy: mockMeetupPolicy.Object);

            meetup.Complete();

            _fixture.dbContext.Add(meetup);

            var meetupRepository = new MeetupRepository(_fixture.dbContext);

            var addMeetupCommentCommandHandler = new AddCommentCommandHandler(meetupRepository, mockIdentityService.Object);
            var cancellationToken = new CancellationToken();

            var addMeetupCommentCommand = new AddCommentCommand
            {
                MeetupId = meetup.Id,
                Comment  = "Good!"
            };

            var exception = await Assert.ThrowsAsync <MeetupDomainException>(async() =>
            {
                await addMeetupCommentCommandHandler.Handle(addMeetupCommentCommand, cancellationToken);
            });

            Assert.Equal("You are not a participant", exception.Message);
        }
Example #9
0
        public async Task GetMeetupById_Should_Get_Meetup_By_Given_Id()
        {
            var memoryDatabaseProvider = new InMemoryDatabaseProvider(_database);
            var meetupRepository       = new MeetupRepository(memoryDatabaseProvider);

            var id = 2;

            Meetup meetup = await meetupRepository.GetMeetupById(id);

            Meetup dbMeetup = _database.Meetups.FirstOrDefault(m => m.Id == id);

            Assert.NotNull(meetup);
            Assert.NotNull(dbMeetup);
            Assert.Equal(meetup.Id, dbMeetup.Id);
            Assert.Equal(meetup.Title, dbMeetup.Title);
            Assert.Equal(meetup.Date, dbMeetup.Date);
            Assert.Equal(meetup.Description, dbMeetup.Description);
            Assert.Equal(meetup.MeetupLink, dbMeetup.MeetupLink);
            Assert.True(dbMeetup.Attendees != null && dbMeetup.Attendees.Any(s => meetup.Attendees.Contains(s)));
            Assert.True(dbMeetup.VideoIds != null && dbMeetup.VideoIds.Any(s => meetup.VideoIds.Contains(s)));
            Assert.True(dbMeetup.SponsorIds != null && dbMeetup.SponsorIds.Any(s => meetup.SponsorIds.Contains(s)));
            Assert.True(dbMeetup.Photos != null && dbMeetup.Photos.Any(s => meetup.Photos.Contains(s)));
        }
        public async Task Should_ThrowException_When_CompletingMeetup_ToNotFoundMeetup()
        {
            var mockIdentityService = new Mock <IIdentityService>();

            mockIdentityService.Setup((x) => x.GetUserId()).Returns("456");

            var mockMeetupPolicy = new Mock <IMeetupPolicy>();

            mockMeetupPolicy.Setup((x) => x.CheckCanDefineMeetup(It.IsAny <string>(), It.IsAny <DateTime>())).Callback(() => { });

            var meetup = new Meetup(
                organizerId: "123",
                subject: "DDD",
                when: DateTime.Now.AddDays(1),
                description: "DDD Practices",
                location: new Location("YTÜ Teknopark"),
                policy: mockMeetupPolicy.Object);

            _fixture.dbContext.Add(meetup);

            var meetupRepository = new MeetupRepository(_fixture.dbContext);

            var completeMeetupCommandHandler = new CompleteMeetupCommandHandler(meetupRepository, mockIdentityService.Object);
            var cancellationToken            = new CancellationToken();

            var completeMeetupCommand = new CompleteMeetupCommand
            {
                MeetupId = meetup.Id
            };

            var exception = await Assert.ThrowsAsync <NotFoundException>(async() =>
            {
                await completeMeetupCommandHandler.Handle(completeMeetupCommand, cancellationToken);
            });

            Assert.Equal("Meetup not found", exception.Message);
        }
        public async Task Should_Succes_When_CancelingMeetup()
        {
            var mockIdentityService = new Mock <IIdentityService>();

            mockIdentityService.Setup((x) => x.GetUserId()).Returns("123");

            var mockMeetupPolicy = new Mock <IMeetupPolicy>();

            mockMeetupPolicy.Setup((x) => x.CheckCanDefineMeetup(It.IsAny <string>(), It.IsAny <DateTime>())).Callback(() => { });

            var meetup = new Meetup(
                organizerId: "123",
                subject: "DDD",
                when: DateTime.Now.AddDays(1),
                description: "DDD Practices",
                location: new Location("YTÜ Teknopark"),
                policy: mockMeetupPolicy.Object);

            _fixture.dbContext.Add(meetup);

            var meetupRepository = new MeetupRepository(_fixture.dbContext);

            var cancelMeetupCommandHandler = new CancelMeetupCommandHandler(meetupRepository, mockIdentityService.Object);
            var cancellationToken          = new CancellationToken();

            var cancelMeetupCommand = new CancelMeetupCommand
            {
                MeetupId = meetup.Id
            };

            await cancelMeetupCommandHandler.Handle(cancelMeetupCommand, cancellationToken);

            var result = await _fixture.dbContext.Meetups.FindAsync(meetup.Id);

            Assert.True(result.Cancelled);
        }
Example #12
0
        public async Task GetMeetups_Should_Get_All_Meetups()
        {
            var memoryDatabaseProvider = new InMemoryDatabaseProvider(_database);
            var meetupRepository       = new MeetupRepository(memoryDatabaseProvider);

            IList <Meetup> meetups = (await meetupRepository.GetMeetups()).ToList();

            foreach (Meetup dbMeetup in _database.Meetups.ToList())
            {
                Meetup meetup = meetups.FirstOrDefault(m => m.Id == dbMeetup.Id);

                Assert.NotNull(meetup);
                Assert.NotNull(dbMeetup);
                Assert.Equal(meetup.Id, dbMeetup.Id);
                Assert.Equal(meetup.Title, dbMeetup.Title);
                Assert.Equal(meetup.Date, dbMeetup.Date);
                Assert.Equal(meetup.Description, dbMeetup.Description);
                Assert.Equal(meetup.MeetupLink, dbMeetup.MeetupLink);
                Assert.True(dbMeetup.Attendees != null && dbMeetup.Attendees.Any(s => meetup.Attendees.Contains(s)));
                Assert.True(dbMeetup.VideoIds != null && dbMeetup.VideoIds.Any(s => meetup.VideoIds.Contains(s)));
                Assert.True(dbMeetup.SponsorIds != null && dbMeetup.SponsorIds.Any(s => meetup.SponsorIds.Contains(s)));
                Assert.True(dbMeetup.Photos != null && dbMeetup.Photos.Any(s => meetup.Photos.Contains(s)));
            }
        }
 public CancelSeatReservationCommandHandler(MeetupRepository repository)
 {
     _repository = repository;
 }
Example #14
0
        public AppContext(IRepository repository, IGeolocator geoLocator, IPositionUpdater positionUpdater, IDisplayNameProvider <User> userDisplayNameProvider, MeetupRepository meetupRepository)
        {
            this.Repository = repository;
            this.GeoLocator = geoLocator;

            this.PositionUpdater         = positionUpdater;
            this.UserDisplayNameProvider = userDisplayNameProvider;
            this.MeetupRepository        = meetupRepository;
        }
Example #15
0
 public ReserveSeatCommandHandler(MeetupRepository meetupRepository)
 {
     _repository = meetupRepository;
 }
Example #16
0
        public SpeakersController(ILogger <EventsController> logger, MeetupRepository repository)
        {
            _logger = logger;

            _repository = repository;
        }
Example #17
0
 public DemoService(ILogger <DemoService> logger, MeetupRepository meetupRepository)
 {
     _logger           = logger;
     _meetupRepository = meetupRepository;
 }
 public CreateMeetupCommandHandler(MeetupRepository repository)
 {
     _repository = repository;
 }
Example #19
0
 public ScheduleMeetupCommandHandler(MeetupRepository meetupRepository)
 {
     this.meetupRepository = meetupRepository;
 }
 public MeetupRepositoryTest()
 {
     filePath         = Path.GetTempFileName() + ".txt";
     meetupRepository = new MeetupRepository(filePath);
 }
 public MeetupController(MeetupRepository meetupRepository)
 {
     this.meetupRepository = meetupRepository;
 }