public void ThrowArgumentNullException_WhenSportscardsIsNull()
        {
            //Arrange
            var dbContextMock = new Mock <ISportscardSystemDbContext>();
            var mapperMock    = new Mock <IMapper>();

            var data = new List <Sportscard>
            {
                new Sportscard {
                    CreatedOn = DateTime.Today.AddDays(-1)
                }
            };

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

            mockSet.SetupData(data);
            Mapper.Reset();
            AutomapperConfiguration.Initialize();

            dbContextMock
            .Setup(x => x.Sportscards)
            .Returns((IDbSet <Sportscard>)null);

            var sportscardDto = new SportscardDto()
            {
                CompanyId = Guid.NewGuid()
            };

            var sportscardService = new SportscardService(dbContextMock.Object, mapperMock.Object);

            //Act && Assert
            Assert.ThrowsException <ArgumentNullException>(() => sportscardService.GetAllSportscards());
        }
        public void ThrowArgumentNullException_WhenInvokedWithInvalidParameter()
        {
            //Arrange
            var dbContextMock = new Mock <ISportscardSystemDbContext>();
            var mapperMock    = new Mock <IMapper>();

            SportscardDto sportscardDto     = null;
            var           sportscardService = new SportscardService(dbContextMock.Object, mapperMock.Object);

            //Act && Assert
            Assert.ThrowsException <ArgumentNullException>(() => sportscardService.AddSportscard(sportscardDto));
        }
        public void AddSportscardToDabatase_WhenInvokedWithValidParameters()
        {
            //Arrange
            var dbContextMock      = new Mock <ISportscardSystemDbContext>();
            var mapperMock         = new Mock <IMapper>();
            var expectedSportscard = new Sportscard()
            {
                CompanyId = Guid.NewGuid()
            };

            var data = new List <Sportscard>
            {
                new Sportscard {
                    CreatedOn = DateTime.Today.AddDays(-1)
                }
            };

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

            mockSet.SetupData(data);
            mockSet.Setup(m => m.Add(It.IsAny <Sportscard>()));

            dbContextMock
            .Setup(x => x.Sportscards)
            .Returns(mockSet.Object);

            var sportscardDto = new SportscardDto()
            {
                CompanyId = Guid.NewGuid()
            };

            mapperMock
            .Setup(x => x.Map <Sportscard>(sportscardDto))
            .Returns(expectedSportscard);

            var sportscardService = new SportscardService(dbContextMock.Object, mapperMock.Object);

            //Act
            sportscardService.AddSportscard(sportscardDto);

            //Assert
            mockSet.Verify(x => x.Add(expectedSportscard), Times.Once);
        }
        public void ReturnIEnumerableOfSportscardsDto_WhenCollectionIsNotNull()
        {
            //Arrange
            var dbContextMock = new Mock <ISportscardSystemDbContext>();
            var mapperMock    = new Mock <IMapper>();

            var data = new List <Sportscard>
            {
                new Sportscard {
                    CreatedOn = DateTime.Today.AddDays(-1)
                }
            };

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

            mockSet.SetupData(data);
            Mapper.Reset();
            AutomapperConfiguration.Initialize();

            dbContextMock
            .Setup(x => x.Sportscards)
            .Returns(mockSet.Object);

            var sportscardDto = new SportscardDto()
            {
                CompanyId = Guid.NewGuid()
            };

            var sportscardService = new SportscardService(dbContextMock.Object, mapperMock.Object);

            //Act
            var sportscards = sportscardService.GetAllSportscards();

            //Assert
            Assert.AreEqual(data.Count, sportscards.Count());
            Assert.IsNotNull(sportscards);
            Assert.IsInstanceOfType(sportscards, typeof(IEnumerable <ISportscardDto>));
        }