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);
        }
 /// <summary>
 /// Prazni konstruktor za podrsku NHibernateovom lazy loadingu
 /// </summary>
 private MaintenanceRequest()
 {
     submitter = null;
     subject = null;
     description = null;
     location = null;
     dateTimeOfRequest = DateTime.MinValue;
 }
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="submitter">osoba koja prijavljuje kvar</param>
 /// <param name="subject">naziv kvara</param>
 /// <param name="description">opis kvara</param>
 /// <param name="location">lokacija gdje se kvar desio</param>
 public MaintenanceRequest(Person submitter, string subject, string description, string location)
 {
     this.submitter = new PersonSnapshot(submitter);
     this.subject = subject;
     this.description = description;
     this.location = location;
     dateTimeOfRequest = DateTime.Now;
 }
Пример #4
0
        /// <summary>
        /// Konstruktor
        /// </summary>
        /// <param name="vote">glas</param>
        /// <param name="partitionSpace">vlasnicka etaza</param>
        public OwnerVote(bool vote, IPartitionSpace partitionSpace)
        {
            if (!partitionSpace.IsOwnedPartitionSpace) {
                throw new BusinessRulesException("This partition space is not OwnedPartitionSpace.");
            }

            this.vote = vote;
            this.shareOfTotalOwnership = partitionSpace.ShareOfTotalOwnership;
            owner = new PersonSnapshot(partitionSpace.Owner);
        }
Пример #5
0
        /// <summary>
        /// Konstruktor (izdaje pravna osoba za pričuvu/zgradu)
        /// </summary>
        /// <param name="legalPersonFrom">pravna osoba koja šalje račun za zgradu</param>
        /// <param name="reserve">Pričuva</param>
        /// <param name="paymentDescription">opis plaćanja</param>
        /// <param name="tax">porez/PDV</param>
        public Bill(LegalPerson legalPersonFrom, Reserve reserve, string paymentDescription, short tax)
        {
            if (String.IsNullOrEmpty(legalPersonFrom.NumberOfBankAccount)) {
                throw new BusinessRulesException("Legal Person has not valid bank account number.");
            }

            to = null;
            this.reserve = reserve;
            from = new LegalPersonSnapshot(legalPersonFrom);
            this.paymentDescription = paymentDescription;
            this.tax = tax;
            dateTimeIssued = DateTime.Now;
            isPaid = false;

            billItems = new List<BillItem>();
        }
        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.Name, personSnapshot.FullName);
            Assert.AreEqual(person.Address, personSnapshot.Address);
        }
Пример #7
0
        /// <summary>
        /// Konstruktor (izdaje pričuva/zgrada za osobu)
        /// </summary>
        /// <param name="reserve">pričuva</param>
        /// <param name="personTo">osoba koja placa racun</param>
        /// <param name="paymentDescription">opis placanja</param>
        /// <param name="tax">porez/PDV</param>
        public Bill(Reserve reserve, Person personTo, string paymentDescription, short tax)
        {
            from = null;
            this.reserve = reserve;
            to = new PersonSnapshot(personTo);
            this.paymentDescription = paymentDescription;
            this.tax = tax;
            dateTimeIssued = DateTime.Now;
            isPaid = false;

            billItems = new List<BillItem>();
        }
Пример #8
0
        /// <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;
        }
Пример #9
0
 /// <summary>
 /// Defaultni kontruktor za podrsku NHibernateovom lazy loadingu
 /// </summary>
 private OwnerVote()
 {
     vote = false;
     owner = null;
     shareOfTotalOwnership = 0;
 }