public RouteService(DataContext context, RouteSetup setup, IRelationshipRepository <SHIPS_TO, Warehouse, Warehouse> repository, IMapper mapper)
 {
     _context    = context;
     _setup      = setup;
     _repository = repository;
     _mapper     = mapper;
 }
Example #2
0
        public RouteServiceTests(TestFixture <Startup> fixture)
        {
            var origin = new Warehouse()
            {
                Name = "A", Id = 1
            };
            var destiny = new Warehouse()
            {
                Name = "D", Id = 2
            };
            var routesEntity = new List <RouteResponse>
            {
                new RouteResponse {
                    Origin = origin, Destiny = destiny, Hops = 1, TotalCost = 5, TotalTime = 10
                },
                new RouteResponse {
                    Origin = origin, Destiny = destiny, Hops = 2, TotalCost = 1, TotalTime = 5
                },
                new RouteResponse {
                    Origin = origin, Destiny = destiny, Hops = 3, TotalCost = 10, TotalTime = 1
                },
            };

            var shipsEntity = new List <SHIPS_TO>
            {
                new SHIPS_TO {
                    Cost = 1, Time = 1
                },
                new SHIPS_TO {
                    Cost = 2, Time = 2
                },
                new SHIPS_TO {
                    Cost = 3, Time = 3
                }
            };

            Repository = new Mock <IRelationshipRepository <SHIPS_TO, Warehouse, Warehouse> >();

            Repository.Setup(x => x.GetAll())
            .Returns(shipsEntity);

            Repository.Setup(x => x.GetById(It.IsAny <int>(), It.IsAny <int>()))
            .Returns((int o, int d) => shipsEntity.Where(s => s.Cost == 3));

            Repository.Setup(x => x.Insert(It.IsAny <SHIPS_TO>(), It.IsAny <Warehouse>(), It.IsAny <Warehouse>()))
            .Callback((SHIPS_TO entity, Warehouse from, Warehouse to) => shipsEntity.Add(entity));

            Repository.Setup(x => x.Update(It.IsAny <SHIPS_TO>(), It.IsAny <Warehouse>(), It.IsAny <Warehouse>()))
            .Callback((SHIPS_TO entity, Warehouse from, Warehouse to) => shipsEntity[shipsEntity.FindIndex(x => x.Cost == entity.Cost)] = entity);

            Repository.Setup(x => x.Delete(It.IsAny <SHIPS_TO>(), It.IsAny <Warehouse>(), It.IsAny <Warehouse>()))
            .Callback((SHIPS_TO entity, Warehouse from, Warehouse to) => shipsEntity.RemoveAt(shipsEntity.FindIndex(x => x.Cost == entity.Cost && x.Time == entity.Time)));

            var dataContext = (DataContext)fixture.Server.Host.Services.GetService(typeof(DataContext));
            var routeSetup  = new RouteSetup("2", "20");
            var mapper      = (IMapper)fixture.Server.Host.Services.GetService(typeof(IMapper));

            Service = new RouteService(dataContext, routeSetup, Repository.Object, mapper);
        }