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[0]);
            Assert.AreEqual(contractor3, buildingManager.Contractors[1]);
        }
        public static BuildingManager getBuildingManager()
        {
            LegalPerson legalPerson = new LegalPerson("12345678902", "Upravitelj");
            BuildingManager buildingManager = new BuildingManager(legalPerson);

            return buildingManager;
        }
        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[0]);
            Assert.AreEqual(contractor2, buildingManager.Contractors[1]);
            Assert.AreEqual(contractor3, buildingManager.Contractors[2]);
        }
        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
            buildingManager.SetContractorForMaintenance(contractor, maintenance);

            // Assert
            Assert.IsNotNull(maintenance.Contractor);
            Assert.AreEqual(new PersonSnapshot(contractor.LegalPerson), maintenance.Contractor );
        }
        public static BuildingManager getBuildingManager()
        {
            LegalPerson legalPerson = new LegalPerson("12345678902", "Upravitelj") {
                NumberOfBankAccount = "1234567"
            };
            BuildingManager buildingManager = new BuildingManager(legalPerson);

            return buildingManager;
        }
        public void Can_Create_MaintenanceRequest()
        {
            // Arrange
            LegalPerson person = new LegalPerson("12345678901", "Mile");

            // Act
            MaintenanceRequest maintenanceRequest = new MaintenanceRequest(person, "Kvar", "Ne radi grijanje.", "Stan Mile, prvi kat.");

            // Assert
            Assert.IsNotNull(maintenanceRequest, "MaintenanceRequest was not created.");
        }
        public void Can_Create_Owned_PartitionSpace()
        {
            // Arrange
            var owner = new LegalPerson("12345678901", "Coca Cola");

            // Act
            var ownedPartitionSpace = landRegistry.CreatePartitionSpace(23, "Dvosoban stan", owner, 32);

            // Assert
            Assert.IsNotNull(ownedPartitionSpace);
        }
Example #8
0
        public void PersonFrom_Must_Have_Valid_Bank_Account_Number()
        {
            // Arrange
            Person person = new PhysicalPerson("12345678901", "Mile", "Milic");
            LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o");

            // Act
            Bill bill = new Bill(person, legalPerson, 23);

            // Assert
        }
        public void Can_Create_BuildingManager()
        {
            // Arrange
            LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o.");

            // Act
            BuildingManager buildingManager = new BuildingManager(legalPerson);

            // Assert
            Assert.IsNotNull(buildingManager);
            Assert.AreEqual(legalPerson, buildingManager.LegalPerson);
            Assert.IsFalse(buildingManager.Contractors.Any());
        }
        public void Date_And_Time_Of_Request_Are_Current_After_Creation()
        {
            // Arrange
            LegalPerson person = new LegalPerson("12345678901", "Mile");
            DateTime theTimeBefore = DateTime.Now.AddMilliseconds(-1);

            // Act
            MaintenanceRequest maintenanceRequest = new MaintenanceRequest(person, "Kvar", "Ne radi grijanje.", "Stan Mile, prvi kat.");

            // Assert
            Assert.IsTrue(maintenanceRequest.DateTimeOfRequest > theTimeBefore);
            Assert.IsTrue(maintenanceRequest.DateTimeOfRequest < DateTime.Now.AddMilliseconds(1));
        }
        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());
        }
Example #12
0
        /// <summary>
        /// Konstruktor
        /// </summary>
        /// <param name="personTo">osoba koja mora platiti</param>
        /// <param name="legalPersonFrom">osoba kojoj se placa</param>
        /// <param name="tax">porez</param>
        public Bill(Person personTo, LegalPerson legalPersonFrom, short tax)
        {
            if(String.IsNullOrEmpty(legalPersonFrom.NumberOfBankAccount)) {
                throw new RulesException("Legal Person has not valid bank account number.");
            }

            To = new PersonSnapshot(personTo);
            From = new LegalPersonSnapshot(legalPersonFrom);
            this.tax = tax;
            isPayed = false;
            dateTimeIssued = DateTime.Now;

            billItems = new List<BillItem>();
        }
Example #13
0
        public void Can_Create_Bill()
        {
            // Arrange
            Person person = new PhysicalPerson("12345678901", "Mile", "Milic");
            LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o") {
                NumberOfBankAccount = "123487815645"
            };

            // Act
            Bill bill = new Bill(person, legalPerson, 23);

            // Assert
            Assert.IsNotNull(bill);
            Assert.IsFalse(bill.IsPayed);
        }
        public void Can_Take_Snapshot_Of_Person()
        {
            // Arrange
            LegalPerson person = new LegalPerson("12345678901", "Mile");
            Telephone telephone1 = new Telephone("Kucni telefon", "123456");
            Telephone telephone2 = new Telephone("Mobitel", "098123456");

            person.AddTelephone(telephone1);
            person.AddTelephone(telephone2);

            // Act
            var personSnapshot = new PersonSnapshot(person);

            // Assert
            Assert.AreEqual(person.Oib, personSnapshot.Oib);
            Assert.AreEqual(person.FullName, personSnapshot.FullName);
            Assert.AreEqual(person.Address, personSnapshot.Address);
            Assert.AreEqual(person.Telephones, personSnapshot.Telephones);
        }
Example #15
0
        public void Can_Calculate_Correct_Total_Amount_With_And_Without_Tax()
        {
            // Arrange
            Person person = new PhysicalPerson("12345678901", "Mile", "Milic");
            LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o") {
                NumberOfBankAccount = "123487815645"
            };

            Bill bill = new Bill(person, legalPerson, 23);
            bill.AddBillItem(new BillItem(1, 23.5m, "Kruške"));
            bill.AddBillItem(new BillItem(3, 46.8m, "Jabuke"));

            // Act
            var totalAmount = bill.TotalAmount;
            var totalAmountWithTax = bill.TotalAmountWithTax;

            // Assert
            Assert.AreEqual(163.9m, totalAmount);
            Assert.AreEqual(201.597m, totalAmountWithTax);
        }
        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[0]);
            Assert.AreEqual(repairService2, contractor.RepairServices[1]);
            Assert.AreEqual(repairService3, contractor.RepairServices[2]);
        }
        public void Can_Remove_Service_From_Contractor()
        {
            // Arrange
            LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o.");

            RepairService repairService1 = new RepairService("Ličenje");
            RepairService repairService2 = new RepairService("vodovodne cijevi");
            RepairService repairService3 = new RepairService("parketi");
            RepairService[] repairServices = new RepairService[] {
                repairService1,
                repairService2,
                repairService3
            };

            Contractor contractor = new Contractor(legalPerson, repairServices);

            // Act
            contractor.RemoveRepairService(repairService2);

            // Assert
            Assert.AreEqual(2, contractor.RepairServices.Count);
            Assert.AreEqual(repairService1, contractor.RepairServices[0]);
            Assert.AreEqual(repairService3, contractor.RepairServices[1]);
        }
        public void Can_Pay_Bill_From_Reserve()
        {
            // Arrange
            Reserve reserve = new Reserve(building);
            decimal currentMoneyStatus = reserve.MoneyStatus;

            LegalPerson legalPerson = new LegalPerson("12345678901", "Mile d.o.o.") {
                NumberOfBankAccount = "1234"
            };

            Bill bill = new Bill(building.RepresentativeOfPartOwners, legalPerson, 23);

            // Act
            reserve.PayBill(bill);

            // Assert
            Assert.AreEqual(currentMoneyStatus - bill.TotalAmountWithTax, reserve.MoneyStatus);
            Assert.IsTrue(bill.IsPayed);
        }
Example #19
0
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="legalPerson">pravna osoba</param>
 public Contractor(LegalPerson legalPerson)
     : this(legalPerson, new List<RepairService>())
 {
 }
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="legalPerson">pravna osoba</param>
 public BuildingManager(LegalPerson legalPerson)
     : this(legalPerson, new List<Contractor>())
 {
 }
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="legalPerson">pravna osoba</param>
 /// <param name="contractors">izvodaci radova</param>
 public BuildingManager(LegalPerson legalPerson, IEnumerable<Contractor> contractors)
 {
     this.legalPerson = legalPerson;
     this.contractors = contractors.ToList();
 }
Example #22
0
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="legalPerson">pravna osoba</param>
 /// <param name="repairServices">usluge koje obavlja izovdac radova</param>
 public Contractor(LegalPerson legalPerson, IEnumerable<RepairService> repairServices)
 {
     this.legalPerson = legalPerson;
     this.repairServices = repairServices.ToList();
 }
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="legalPerson">pravna osoba</param>
 public LegalPersonSnapshot(LegalPerson legalPerson)
     : base(legalPerson)
 {
     this.numberOfBankAccount = legalPerson.NumberOfBankAccount;
 }
 public void If_Oib_Is_Invalid_Should_Throw_RuleException()
 {
     var person1 = new LegalPerson("123456", "Mile");
     var person2 = new LegalPerson("abs", "Mile");
 }