예제 #1
0
        public async Task GetAsyncReturnsSearchedElement()
        {
            // Arrange
            var cinemas = new List <Cinema>
            {
                new Cinema {
                    Id = "1"
                },
                new Cinema {
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Cinema> >();

            mockSet.As <IQueryable <Cinema> >().Setup(m => m.Provider).Returns(cinemas.Provider);
            mockSet.As <IQueryable <Cinema> >().Setup(m => m.Expression).Returns(cinemas.Expression);
            mockSet.As <IQueryable <Cinema> >().Setup(m => m.ElementType).Returns(cinemas.ElementType);
            mockSet.As <IQueryable <Cinema> >().Setup(m => m.GetEnumerator()).Returns(cinemas.GetEnumerator());

            var mockContext = new Mock <CinemaDbContext>();

            mockContext.Setup(c => c.Cinemas).Returns(mockSet.Object);
            mockContext.Setup(c => c.Cinemas.FindAsync(It.IsAny <string>())).
            Returns(new ValueTask <Cinema>(cinemas.First()));

            var cinemaBusiness = new CinemaBusiness(mockContext.Object,
                                                    new EmailSender("TestAPIKey", "TestSender", "TestSenderName"));
            var searchedCinema = cinemas.First();

            // Act
            var resultCinema = await cinemaBusiness.GetAsync(searchedCinema.Id);

            // Assert
            Assert.AreEqual(searchedCinema, resultCinema, "Doesn't return the searched element from the cinema.");
        }
예제 #2
0
        public async Task GetAsyncReturnsSearchedElementMapped()
        {
            // Arrange
            var cinemas = new List <Cinema>
            {
                new Cinema
                {
                    Id              = "1", Manager = new CinemaUser(),
                    City            = "Sliven", Country = "Bulgaria",
                    FilmProjections = new List <FilmProjection>(),
                    Name            = "Cinema1"
                },
                new Cinema {
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Cinema> >();

            mockSet.As <IQueryable <Cinema> >().Setup(m => m.Provider).Returns(cinemas.Provider);
            mockSet.As <IQueryable <Cinema> >().Setup(m => m.Expression).Returns(cinemas.Expression);
            mockSet.As <IQueryable <Cinema> >().Setup(m => m.ElementType).Returns(cinemas.ElementType);
            mockSet.As <IQueryable <Cinema> >().Setup(m => m.GetEnumerator()).Returns(cinemas.GetEnumerator());

            var mockContext = new Mock <CinemaDbContext>();

            mockContext.Setup(c => c.Cinemas).Returns(mockSet.Object);
            mockContext.Setup(c => c.Cinemas.FindAsync(It.IsAny <string>())).
            Returns(new ValueTask <Cinema>((cinemas.First())));

            var cinemaBusiness = new CinemaBusiness(mockContext.Object,
                                                    new EmailSender("TestAPIKey", "TestSender", "TestSenderName"));
            var searchedCinema = cinemas.First();
            var mapper         = new Mapper();

            // Act
            var resultCinema = await cinemaBusiness.GetAsync(searchedCinema.Id, mapper.MapToCinemaCardViewModel);

            // Assert
            Assert.AreEqual(searchedCinema.Id, resultCinema.Id, "Doesn't return the correct id of the cinema.");
            Assert.AreEqual(searchedCinema.Name, resultCinema.Name, "Doesn't return the correct name of the cinema.");
            Assert.AreEqual(searchedCinema.Country, resultCinema.Country, "Doesn't return the correct country of the cinema.");
            Assert.AreEqual(searchedCinema.City, resultCinema.City, "Doesn't return the correct iof the cinema.");
        }