public ConstructionBoltsController( IConstructionBoltService constructionBoltService, IMapper mapper ) { _service = constructionBoltService; _mapper = mapper; }
public ConstructionBoltServiceTest() { // Arrange _departments = new List <Department> { new Department { Id = 1, Name = "D1", }, new Department { Id = 2, Name = "D2", }, }; _positions = new List <Position> { new Position { Id = 1, Name = "P1", }, new Position { Id = 2, Name = "P2", }, new Position { Id = 3, Name = "P3", }, new Position { Id = 4, Name = "P4", }, new Position { Id = 7, Name = "P7", }, new Position { Id = 9, Name = "P9", }, new Position { Id = 10, Name = "P10", }, }; _employees = new List <Employee> { new Employee { Id = 1, Name = "E1", Department = _departments[0], Position = _positions[0], }, new Employee { Id = 2, Name = "E2", Department = _departments[1], Position = _positions[1], }, new Employee { Id = 3, Name = "E3", Department = _departments[0], Position = _positions[2], }, new Employee { Id = 4, Name = "E4", Department = _departments[1], Position = _positions[1], }, new Employee { Id = 5, Name = "E5", Department = _departments[0], Position = _positions[4], }, new Employee { Id = 6, Name = "E6", Department = _departments[1], Position = _positions[4], }, new Employee { Id = 7, Name = "E7", Department = _departments[0], Position = _positions[5], }, new Employee { Id = 8, Name = "E8", Department = _departments[1], Position = _positions[6], }, }; _projects = new List <Project> { new Project { Id = 1, Name = "P1", BaseSeries = "M32787", }, new Project { Id = 2, Name = "2", BaseSeries = "M32788", }, }; _nodes = new List <Node> { new Node { Id = 1, Project = _projects[0], Code = "11", Name = "Name 1", ChiefEngineer = _employees[0], }, new Node { Id = 2, Project = _projects[1], Code = "22", Name = "Name 2", ChiefEngineer = _employees[1], }, }; _subnodes = new List <Subnode> { new Subnode { Id = 1, Node = _nodes[0], Code = "Code1", Name = "Name 1", }, new Subnode { Id = 2, Node = _nodes[1], Code = "Code2", Name = "Name 2", }, }; _marks = new List <Mark> { new Mark { Id = 1, Subnode = _subnodes[0], Code = "KM1", Name = "Name 1", Department = _departments[0], MainBuilder = _employees[0], }, new Mark { Id = 2, Subnode = _subnodes[0], Code = "KM2", Name = "Name 2", Department = _departments[0], MainBuilder = _employees[1], }, new Mark { Id = 3, Subnode = _subnodes[1], Code = "KM3", Name = "Name 3", Department = _departments[1], MainBuilder = _employees[2], }, new Mark { Id = 4, Subnode = _subnodes[1], Code = "KM4", Name = "Name 4", Department = _departments[1], MainBuilder = _employees[2], }, }; _specifications = new List <Specification> { new Specification { Id = 1, Mark = _marks[0], Num = 0, IsCurrent = true, }, new Specification { Id = 2, Mark = _marks[1], Num = 0, IsCurrent = false, }, new Specification { Id = 3, Mark = _marks[1], Num = 1, IsCurrent = true, }, new Specification { Id = 4, Mark = _marks[2], Num = 0, IsCurrent = true, }, }; _constructionTypes = new List <ConstructionType> { new ConstructionType { Id = 1, Name = "T1", }, new ConstructionType { Id = 2, Name = "T2", }, new ConstructionType { Id = 3, Name = "T3", }, }; _constructionSubtypes = new List <ConstructionSubtype> { new ConstructionSubtype { Id = 1, Type = _constructionTypes[0], Name = "S1", Valuation = "V1", }, new ConstructionSubtype { Id = 2, Type = _constructionTypes[1], Name = "S2", Valuation = "V2", }, new ConstructionSubtype { Id = 3, Type = _constructionTypes[2], Name = "S3", Valuation = "V3", }, }; _weldingControl = new List <WeldingControl> { new WeldingControl { Id = 1, Name = "WC1", }, new WeldingControl { Id = 2, Name = "WC2", }, new WeldingControl { Id = 3, Name = "WC3", }, }; _constructions = new List <Construction> { new Construction { Id = 1, Specification = _specifications[0], Name = "N1", Type = _constructionTypes[0], Subtype = _constructionSubtypes[0], Valuation = "1701", NumOfStandardConstructions = 1, StandardAlbumCode = "C1", HasEdgeBlunting = true, HasDynamicLoad = false, HasFlangedConnections = true, WeldingControl = _weldingControl[0], PaintworkCoeff = 1, }, new Construction { Id = 2, Specification = _specifications[0], Name = "N2", Type = _constructionTypes[1], Valuation = "1702", NumOfStandardConstructions = 1, StandardAlbumCode = "C1", HasEdgeBlunting = true, HasDynamicLoad = false, HasFlangedConnections = true, WeldingControl = _weldingControl[1], PaintworkCoeff = 1, }, new Construction { Id = 3, Specification = _specifications[1], Name = "N3", Type = _constructionTypes[0], Valuation = "1703", NumOfStandardConstructions = 0, HasEdgeBlunting = true, HasDynamicLoad = false, HasFlangedConnections = true, WeldingControl = _weldingControl[1], PaintworkCoeff = 1, }, new Construction { Id = 4, Specification = _specifications[1], Name = "N4", Type = _constructionTypes[2], Valuation = "1704", NumOfStandardConstructions = 0, HasEdgeBlunting = true, HasDynamicLoad = false, HasFlangedConnections = true, WeldingControl = _weldingControl[2], PaintworkCoeff = 2, }, new Construction { Id = 5, Specification = _specifications[2], Name = "N5", Type = _constructionTypes[0], Valuation = "1705", NumOfStandardConstructions = 0, HasEdgeBlunting = true, HasDynamicLoad = false, HasFlangedConnections = true, WeldingControl = _weldingControl[0], PaintworkCoeff = 2, }, }; _boltDiameters = new List <BoltDiameter> { new BoltDiameter { Id = 1, Diameter = 1, NutWeight = 1, WasherSteel = "WS1", WasherWeight = 1, WasherThickness = 1, BoltTechSpec = "BTS1", StrengthClass = "S1", NutTechSpec = "NTS1", WasherTechSpec = "WTS1", }, new BoltDiameter { Id = 2, Diameter = 2, NutWeight = 2, WasherSteel = "WS2", WasherWeight = 2, WasherThickness = 2, BoltTechSpec = "BTS2", StrengthClass = "S2", NutTechSpec = "NTS2", WasherTechSpec = "WTS2", }, new BoltDiameter { Id = 3, Diameter = 3, NutWeight = 3, WasherSteel = "WS3", WasherWeight = 3, WasherThickness = 3, BoltTechSpec = "BTS3", StrengthClass = "S3", NutTechSpec = "NTS3", WasherTechSpec = "WTS3", }, }; _boltLengths = new List <BoltLength> { new BoltLength { Id = 1, Diameter = _boltDiameters[0], BoltLen = 1, ScrewLen = 1, BoltWeight = 1, }, new BoltLength { Id = 2, Diameter = _boltDiameters[1], BoltLen = 2, ScrewLen = 2, BoltWeight = 2, }, new BoltLength { Id = 3, Diameter = _boltDiameters[2], BoltLen = 3, ScrewLen = 3, BoltWeight = 3, }, }; _constructionBolts = new List <ConstructionBolt> { new ConstructionBolt { Id = 1, Construction = _constructions[0], Diameter = _boltDiameters[0], Packet = 1, Num = 1, NutNum = 1, WasherNum = 1, }, new ConstructionBolt { Id = 2, Construction = _constructions[0], Diameter = _boltDiameters[1], Packet = 2, Num = 2, NutNum = 2, WasherNum = 2, }, new ConstructionBolt { Id = 3, Construction = _constructions[1], Diameter = _boltDiameters[0], Packet = 3, Num = 3, NutNum = 3, WasherNum = 3, }, new ConstructionBolt { Id = 4, Construction = _constructions[1], Diameter = _boltDiameters[2], Packet = 4, Num = 4, NutNum = 4, WasherNum = 4, }, new ConstructionBolt { Id = 5, Construction = _constructions[2], Diameter = _boltDiameters[1], Packet = 5, Num = 5, NutNum = 5, WasherNum = 5, }, }; foreach (var cb in _constructionBolts) { _updateConstructionBolts.Add(new ConstructionBolt { Id = cb.Id, Construction = cb.Construction, Diameter = cb.Diameter, Packet = cb.Packet, Num = cb.Num, NutNum = cb.NutNum, WasherNum = cb.WasherNum, }); } foreach (var constructionBolt in _constructionBolts) { _repository.Setup(mock => mock.GetById(constructionBolt.Id)).Returns( _constructionBolts.SingleOrDefault(v => v.Id == constructionBolt.Id)); _updateRepository.Setup(mock => mock.GetById(constructionBolt.Id)).Returns( _updateConstructionBolts.SingleOrDefault(v => v.Id == constructionBolt.Id)); } foreach (var construction in _constructions) { _mockConstructionRepo.Setup(mock => mock.GetById(construction.Id, false)).Returns( _constructions.SingleOrDefault(v => v.Id == construction.Id)); _mockConstructionRepo.Setup(mock => mock.GetById(construction.Id, true)).Returns( _constructions.SingleOrDefault(v => v.Id == construction.Id)); _repository.Setup(mock => mock.GetAllByConstructionId(construction.Id)).Returns( _constructionBolts.Where(v => v.Construction.Id == construction.Id)); _updateRepository.Setup(mock => mock.GetAllByConstructionId(construction.Id)).Returns( _updateConstructionBolts.Where(v => v.Construction.Id == construction.Id)); foreach (var constructionBolt in _constructionBolts) { _repository.Setup(mock => mock.GetByUniqueKey(construction.Id, constructionBolt.Diameter.Id)).Returns( _constructionBolts.SingleOrDefault( v => v.Construction.Id == construction.Id && v.Diameter.Id == constructionBolt.Diameter.Id)); _updateRepository.Setup(mock => mock.GetByUniqueKey(construction.Id, constructionBolt.Diameter.Id)).Returns( _updateConstructionBolts.SingleOrDefault( v => v.Construction.Id == construction.Id && v.Diameter.Id == constructionBolt.Diameter.Id)); } } foreach (var diameter in _boltDiameters) { _mockBoltDiameterRepo.Setup(mock => mock.GetById(diameter.Id)).Returns( _boltDiameters.SingleOrDefault( v => v.Id == diameter.Id)); } foreach (var mark in _marks) { _mockMarkRepo.Setup(mock => mock.GetById(mark.Id)).Returns( _marks.SingleOrDefault(v => v.Id == mark.Id)); } _repository.Setup(mock => mock.Add(It.IsAny <ConstructionBolt>())).Verifiable(); _updateRepository.Setup(mock => mock.Update(It.IsAny <ConstructionBolt>())).Verifiable(); _repository.Setup(mock => mock.Delete(It.IsAny <ConstructionBolt>())).Verifiable(); _service = new ConstructionBoltService( _repository.Object, _mockMarkRepo.Object, _mockConstructionRepo.Object, _mockBoltDiameterRepo.Object); _updateService = new ConstructionBoltService( _updateRepository.Object, _mockMarkRepo.Object, _mockConstructionRepo.Object, _mockBoltDiameterRepo.Object); }