public RouteService(DataContext context, RouteSetup setup, IRelationshipRepository <SHIPS_TO, Warehouse, Warehouse> repository, IMapper mapper) { _context = context; _setup = setup; _repository = repository; _mapper = mapper; }
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); }