public Money GetPriceForHealing(Hospital hospital, Citizen citizen) { HealingPrice healingPrice = hospitalRepository.GetHealingPrice(hospital.CompanyID, citizen.ID); var currency = Persistent.Currencies.GetById(healingPrice.CurrencyID); return(new Money(currency, healingPrice.Cost ?? 0m)); }
public void HealCitizen_simple_test() { var hospital = new HospitalDummyCreator().Create(); var citizen = new CitizenDummyCreator().Create(); var healingPrice = new HealingPrice() { Cost = 12.34m, CurrencyID = 1 }; hospitalRepository.Setup(x => x.GetHealingPrice(It.IsAny <int>(), It.IsAny <int>())).Returns(healingPrice); transactionsService.Setup(x => x.PayForHealing(It.IsAny <Hospital>(), It.IsAny <Citizen>(), It.IsAny <HealingPrice>())); equipmentService.Setup(x => x.RemoveProductsFromEquipment(It.IsAny <ProductTypeEnum>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <Equipment>())); hospitalService.HealCitizen(citizen, hospital); transactionsService.Verify(x => x.PayForHealing( It.Is <Hospital>(h => h == hospital), It.Is <Citizen>(c => c == citizen), It.Is <HealingPrice>(h => h == healingPrice)), Times.Once); equipmentService.Verify(e => e.RemoveProductsFromEquipment( It.Is <ProductTypeEnum>(t => t == ProductTypeEnum.MedicalSupplies), It.Is <int>(amount => amount == 1), It.Is <int>(quality => quality == hospital.Company.Quality), It.Is <Equipment>(eq => eq == hospital.Company.Entity.Equipment)), Times.Once); }
public void HealCitizen(Citizen citizen, Hospital hospital) { equipmentService.RemoveProductsFromEquipment(ProductTypeEnum.MedicalSupplies, 1, hospital.Company.Quality, hospital.Company.Entity.Equipment); HealingPrice healingPrice = hospitalRepository.GetHealingPrice(hospital.CompanyID, citizen.ID); if (healingPrice.Cost.HasValue) { transactionsService.PayForHealing(hospital, citizen, healingPrice); } HealCitizenProcess(citizen, hospital.Company.Quality); ConditionalSaveChanges(hospitalRepository); }
public void HealCitizen_freeHealing_test() { var hospital = new HospitalDummyCreator().Create(); var citizen = new CitizenDummyCreator().Create(); var healingPrice = new HealingPrice() { Cost = null, CurrencyID = 1 }; hospitalRepository.Setup(x => x.GetHealingPrice(It.IsAny <int>(), It.IsAny <int>())).Returns(healingPrice); hospitalService.HealCitizen(citizen, hospital); transactionsService.Verify(x => x.PayForHealing( It.IsAny <Hospital>(), It.IsAny <Citizen>(), It.IsAny <HealingPrice>()), Times.Never); }
public void PayForHealing_simple_test() { var hospital = new HospitalDummyCreator().Create(); var citizen = new CitizenDummyCreator().Create(); var currency = new CurrencyDummyCreator().Create(); var healingPrice = new HealingPrice() { CurrencyID = currency.ID, Cost = 12.34m }; transactionsService.PayForHealing(hospital, citizen, healingPrice); mockTransactionsService.Verify(x => x.MakeTransaction(It.Is <Transaction>( t => t.TransactionType == TransactionTypeEnum.Healing && t.DestinationEntityID == hospital.CompanyID && t.SourceEntityID == citizen.ID && t.Money.Currency == currency && t.Money.Amount == healingPrice.Cost ), It.IsAny <bool>())); }
public TransactionResult PayForHealing(Hospital hospital, Citizen citizen, HealingPrice healinPrice) { var hospitalEntity = hospital.Company.Entity; var citizenEntity = citizen.Entity; var currency = Persistent.Currencies.GetById(healinPrice.CurrencyID); var money = new Money(currency, healinPrice.Cost.Value); var transaction = new Transaction() { Arg1 = "Healing", Arg2 = string.Format("{0}({1}) paid for healing in {2}({3})", citizenEntity.Name, citizenEntity.EntityID, hospitalEntity.Name, hospitalEntity.EntityID), DestinationEntityID = hospitalEntity.EntityID, SourceEntityID = citizenEntity.EntityID, Money = money, TransactionType = TransactionTypeEnum.Healing }; return(MakeTransaction(transaction, false)); }