public void BuildingManager_Can_Set_Cotractor_For_Maitenance() { // Arrange MaintenanceRequest maintenanceRequest = new MaintenanceRequest(person, "Kvar", "Ne radi grijanje.", "Stan Mile, prvi kat."); RepairService serviceTypeForMock = new RepairService("Ličenje"); Mock<IRepairServicesRepository> repairServicesRepositoryMock = new Mock<IRepairServicesRepository>(); repairServicesRepositoryMock.Setup(x => x.GetById(23)).Returns(serviceTypeForMock); RepairService serviceType = repairServicesRepositoryMock.Object.GetById(23); Maintenance maintenance = new Maintenance(maintenanceRequest, Urgency.High, serviceType, building); LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o."); Contractor contractor = new Contractor(legalPerson).AddRepairService(serviceType); BuildingManager buildingManager = maintenance.BuildingManager; buildingManager.AddContractor(contractor); // Act maintenance.SetContractor(contractor); // Assert var personSnapshot = new PersonSnapshot(contractor.LegalPerson); Assert.IsNotNull(maintenance.Contractor); Assert.AreEqual(personSnapshot.Oib, maintenance.Contractor.Oib, "Oibs aren't equal."); Assert.AreEqual(personSnapshot.FullName, maintenance.Contractor.FullName, "FullNames aren't equal."); Assert.AreEqual(personSnapshot.Address, maintenance.Contractor.Address, "Addresses aren't equal."); Assert.AreEqual(personSnapshot, maintenance.Contractor); }
public void Can_Remove_Service_From_Contractor() { LegalPerson legalPersonForContractor1 = new LegalPerson("12345678902", "Contractor 1 d.o.o."); Contractor contractor1 = new Contractor(legalPersonForContractor1); LegalPerson legalPersonForContractor2 = new LegalPerson("12345678903", "Contractor 2 d.o.o."); Contractor contractor2 = new Contractor(legalPersonForContractor2); LegalPerson legalPersonForContractor3 = new LegalPerson("12345678904", "Contractor 3 d.o.o."); Contractor contractor3 = new Contractor(legalPersonForContractor3); Contractor[] contractors = new Contractor[] { contractor1, contractor2, contractor3 }; LegalPerson legalPersonForManager = new LegalPerson("12345678901", "Mile d.o.o."); BuildingManager buildingManager = new BuildingManager(legalPersonForManager, contractors); // Act buildingManager.RemoveContractor(contractor2); // Assert Assert.AreEqual(2, buildingManager.Contractors.Count); Assert.AreEqual(contractor1, buildingManager.Contractors.ElementAt(0)); Assert.AreEqual(contractor3, buildingManager.Contractors.ElementAt(1)); }
public void Can_Save_Contractor_To_DB() { // Arrange LegalPerson legalPerson = new LegalPerson("12345678901", "Ime"); Contractor contractor = new Contractor(legalPerson); ContractorsNHRepository contractorNhRepository = new ContractorsNHRepository(SessionFactory); // Act using (var session = SessionFactory.OpenSession()) { using (var tx = Session.BeginTransaction()) { contractorNhRepository.SaveOrUpdate(contractor); tx.Commit(); } } IList<Contractor> contractors = null; using (var session = SessionFactory.OpenSession()) { using (var tx = Session.BeginTransaction()) { contractors = contractorNhRepository.GetAll().ToList(); tx.Commit(); } } // Assert Assert.IsTrue(contractors.Count > 0, "Contractor has been saved to database."); }
public void Can_Add_Contractors_To_BuildingManager() { // Arrange LegalPerson legalPersonForContractor1 = new LegalPerson("12345678902", "Contractor 1 d.o.o."); Contractor contractor1 = new Contractor(legalPersonForContractor1); LegalPerson legalPersonForContractor2 = new LegalPerson("12345678903", "Contractor 2 d.o.o."); Contractor contractor2 = new Contractor(legalPersonForContractor2); Contractor[] contractors = new Contractor[] { contractor1, contractor2 }; LegalPerson legalPersonForContractor3 = new LegalPerson("12345678904", "Contractor 3 d.o.o."); Contractor contractor3 = new Contractor(legalPersonForContractor3); LegalPerson legalPersonForManager = new LegalPerson("12345678901", "Mile d.o.o."); // Act BuildingManager buildingManager = new BuildingManager(legalPersonForManager, contractors); buildingManager.AddContractor(contractor3); // Assert Assert.AreEqual(3, buildingManager.Contractors.Count); Assert.AreEqual(contractor1, buildingManager.Contractors.ElementAt(0)); Assert.AreEqual(contractor2, buildingManager.Contractors.ElementAt(1)); Assert.AreEqual(contractor3, buildingManager.Contractors.ElementAt(2)); }
public void Can_Create_Contractor() { // Arrange LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o."); // Act Contractor contractor = new Contractor(legalPerson); // Assert Assert.IsNotNull(contractor); Assert.AreEqual(legalPerson, contractor.LegalPerson); Assert.IsFalse(contractor.RepairServices.Any()); }
public void Can_Add_Services_To_Contractor() { // Arrange LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o."); RepairService repairService1 = new RepairService("Ličenje"); RepairService repairService2 = new RepairService("vodovodne cijevi"); RepairService[] repairServices = new RepairService[] { repairService1, repairService2 }; // Act Contractor contractor = new Contractor(legalPerson, repairServices); RepairService repairService3 = new RepairService("parketi"); contractor.AddRepairService(repairService3); // Assert Assert.AreEqual(3, contractor.RepairServices.Count); Assert.AreEqual(repairService1, contractor.RepairServices.ElementAt(0)); Assert.AreEqual(repairService2, contractor.RepairServices.ElementAt(1)); Assert.AreEqual(repairService3, contractor.RepairServices.ElementAt(2)); }
/// <summary> /// Dodaje izvodaca radova /// </summary> /// <param name="contractor">izvodac radova</param> public virtual void AddContractor(Contractor contractor) { contractors.Add(contractor); }
/// <summary> /// Brise izvodaca radoba /// </summary> /// <param name="contractor"></param> /// <returns>true ako je brisanje uspjelo, inace false</returns> public virtual bool RemoveContractor(Contractor contractor) { return contractors.Remove(contractor); }
/// <summary> /// Dodjeljuje izvodaca radova na popravak ili odrzavanje /// </summary> /// <param name="contractor">izvodac radova</param> public virtual void SetContractor(Contractor contractor) { var errors = new BusinessRulesException<Maintenance>(); if (!BuildingManager.Contractors.Contains(contractor)) { errors.AddErrorForModel("Contractor is not working for BuildingManager, so it's invalid."); } if (!contractor.RepairServices.Contains(ServiceType)) { errors.AddErrorForModel("This Contractor can't do needed service."); } if (errors.Errors.Any()) { throw errors; } this.contractor = new PersonSnapshot(contractor.LegalPerson); statusOfMaintenance = StatusOfMaintenance.InProgress; }
public ActionResult RegisterContractor(RegisterContractorUserModel contractorModel) { if (ModelState.IsValid) { Person person = personsRepository.GetByOib(contractorModel.Oib); bool isUserExistingForPerson = false; if (person != null) { var existingUser = housingMgmtUsersRepository.GetUserByPerson(person); isUserExistingForPerson = existingUser != null; } if (!isUserExistingForPerson) { MembershipCreateStatus createStatus; NHibernateMembershipUser membershipUser = Membership.CreateUser(contractorModel.UserName, contractorModel.Password, contractorModel.Email, null, null, true, null, out createStatus) as NHibernateMembershipUser; if (createStatus == MembershipCreateStatus.Success) { if (person == null) { // Probaj kreirati pravnu osobu i izvodaca radova City city = citiesRepository.GetById(contractorModel.City); person = new LegalPerson(contractorModel.Oib, contractorModel.Name) { NumberOfBankAccount = contractorModel.NumberOfBankAccount, Address = new Address(contractorModel.StreetAddress, contractorModel.StreetAddressNumber, city) }; if (!string.IsNullOrEmpty(contractorModel.TelephoneNumber)) { person.AddTelephone(new Telephone("Telefon", contractorModel.TelephoneNumber)); } if (!string.IsNullOrEmpty(contractorModel.MobileNumber)) { person.AddTelephone(new Telephone("Mobitel", contractorModel.MobileNumber)); } } if (person is LegalPerson) { Contractor contractor = null; try { membershipUser.User.Person = person; var contractorRole = rolesRepository.GetRole("contractor"); membershipUser.User.AddRole(contractorRole); var partitionSpaces = partitionSpacesRepository.GetPartitionSpaces(person); if (partitionSpaces.Count > 0) { var ownerRole = rolesRepository.GetRole("owner"); membershipUser.User.AddRole(ownerRole); } contractor = new Contractor(person as LegalPerson); foreach (var repairServiceId in contractorModel.SelectedRepairServices) { var repairService = repairServicesRepository.GetById(repairServiceId); if (repairService != null) { contractor.AddRepairService(repairService); } } FormsAuthentication.SetAuthCookie(contractorModel.UserName, false); contractorsRepository.SaveOrUpdate(contractor); emailNotifier.NotifyOfRegistration(membershipUser.User); return RedirectToAction("index", "dashboard"); } catch (BusinessRulesException ex) { ex.CopyTo(ModelState); } } else { ModelState.AddModelError("Oib", "Osoba sa ovim OIB-om je već upisana te nije pravna osoba."); } } else { ModelState.AddModelError("", errorCodeToString(createStatus)); } } else { ModelState.AddModelError("", "Navedena osoba već ima kreiran korisnički račun."); } } contractorModel.Cities = new SelectList(citiesRepository.GetAll(), "Id", "Name"); contractorModel.RepairServices = new SelectList(repairServicesRepository.GetAll(), "Id", "Name", contractorModel.City); return View(contractorModel); }