public void ShouldReturnDelegationVmToEdit() { var delegation = SetDelegation(); var config = new MapperConfiguration(cfg => { cfg.AddProfile(new MappingProfile()); }); var mapper = config.CreateMapper(); var delRepo = new Mock <IDelegationRepository>(); delRepo.Setup(d => d.GetDelegationById(1)).Returns(delegation); var vehRepo = new Mock <IVehicleRepository>(); var empRepo = new Mock <IEmployeeRepository>(); var delServ = new DelegationService(delRepo.Object, empRepo.Object, vehRepo.Object, mapper); var delVmResult = delServ.GetDelegationForEdit(1); delVmResult.Should().BeOfType(typeof(NewDelegationVm)); delVmResult.Should().NotBeNull(); delVmResult.Routes.Should().HaveCount(1); delVmResult.Routes.Should().AllBeOfType(typeof(NewRouteVm)); delVmResult.Costs.Should().HaveCount(2); delVmResult.Costs.Should().AllBeOfType(typeof(NewCostVm)); delVmResult.Costs.Should().OnlyHaveUniqueItems(c => c.CostId); delVmResult.Costs.ForEach(c => c.DelegationId.Should().Be(delegation.Id)); }