public void VolumesExcludedCurrentContractBillingMonths() { var currentContract = ContractReaderStub.Contract(); var contracts = ContractReaderStub.Contracts(); var previousSiteVolumes = ContractProductSiteVolumeReaderStub.PreviousSiteVolumes(); var currentContractSiteVolumes = ContractProductSiteVolumeReaderStub.CurrentSiteVolume(); var previousContractForTheClient = SiteVolumeCalculator.PreviousContractForClient(currentContract, contracts); var previousContractSiteVolumes = SiteVolumeCalculator.SiteVolumesForContract( previousContractForTheClient, previousSiteVolumes); var currentContractBillingMonths = SiteVolumeCalculator.BillingMonths( currentContractSiteVolumes); var actualResult = SiteVolumeCalculator .VolumesExcludedCurrentContractBillingMonths( currentContractBillingMonths, previousContractSiteVolumes); //march 3rd 2015 Assert.AreEqual(50, actualResult.ElementAt(0).Volume); Assert.AreEqual(30, actualResult.ElementAt(0).SiteId); Assert.AreEqual(new DateTime(2015, 3, 1), actualResult.ElementAt(0).BillingMonth); }
public void PreviousContractForTheClient() { var contract = ContractReaderStub.Contract(); var contracts = ContractReaderStub.Contracts(); var previousContract = SiteVolumeCalculator.PreviousContractForClient( contract, contracts); Assert.AreEqual(33, previousContract.ClientId); Assert.AreEqual(new DateTime(2015, 3, 1), previousContract.EndDate); }
public void TotalContractedVolumeForNoVolumeAvailableContract() { var contract = ContractReaderStub.Contract(); var contracts = ContractReaderStub.Contracts(); var products = ContractProductReaderStub.Products(); var sites = ContractProductSiteReaderStub.Sites(); var volumes = ContractProductSiteVolumeReaderStub.PreviousSiteVolumes(); var forecaster = new SiteVolumeCalculator(); var totalContractedSiteVolume = forecaster.TotalContractedVolume(contract, contracts, products, sites, volumes); Assert.AreEqual(150, totalContractedSiteVolume); }
public void DecoupleSiteVolumeCalculatorFromForecaster() { var contract = ContractReaderStub.Contract(); var contracts = ContractReaderStub.Contracts(); var products = ContractProductReaderStub.Products(); var sites = ContractProductSiteReaderStub.Sites(); var volumes = ContractProductSiteVolumeReaderStub.SomeVolumes(); var volumeCalculator = new SiteVolumeCalculator(); var volumeForecaster = new SiteVolumeForecaster(volumeCalculator); var actualResult = volumeForecaster.TotalContractedVolume( contract, contracts, products, sites, volumes); Assert.AreEqual(250, actualResult); }
[TestMethod] public void NotAllVolumesAvailableAndNotNoVolumesAvailableContract() { var contract = ContractReaderStub.Contract(); var contracts = ContractReaderStub.Contracts(); var products = ContractProductReaderStub.Products(); var sites = ContractProductSiteReaderStub.Sites(); var volumes = ContractProductSiteVolumeReaderStub.NotAllVolumeNotNoVolume(); var forecaster = new SiteVolumeCalculator(); var actualResult = forecaster.TotalContractedVolume( contract, contracts, products, sites, volumes ); Assert.AreEqual(250, actualResult); }
public void TotalContractedVolumeForAllVolumeAvailableContract() { var contract = ContractReaderStub.Contract(); var contracts = ContractReaderStub.Contracts(); var products = ContractProductReaderStub.Products(); var sites = ContractProductSiteReaderStub.Sites(); var volumes = ContractProductSiteVolumeReaderStub.AllVolumes(); var forecaster = new SiteVolumeCalculator(); var actualResult = forecaster.TotalContractedVolume( contract, contracts, products, sites, volumes ); Assert.AreEqual(300, actualResult); }