Example #1
0
        public void PostTripWithPinpointsTest()
        {
            var data = new List <UserModel>
            {
                new UserModel()
                {
                    Id = 1, Token = "aa", Username = "******", Password = "******", Email = "@gmail"
                }
            }.AsQueryable();

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

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

            var options = new DbContextOptionsBuilder <MyDbContext>()
                          .Options;

            var mockContext = new Mock <MyDbContext>(options);

            mockContext.Setup(x => x.Users).Returns(mockSet.Object);

            mockContext.SetupProperty(x => x.Trips);
            mockContext.SetupProperty(x => x.PinPoints);

            var service = new TripController(mockContext.Object);

            var titudesArray = new Titudes[1];

            var a = new Titudes()
            {
                Lat  = 20,
                Long = 20
            };

            titudesArray[0] = a;

            var model = new ReceivedInfo()
            {
                Token     = "aa",
                Name      = "test",
                From      = DateTime.Now,
                To        = DateTime.Now,
                Pinpoints = titudesArray
            };

            var _ = service.PostTripWithPinpoints(model);

            mockContext.Verify(x => x.Add(It.IsAny <TripModel>()), Times.Once);
        }