コード例 #1
0
        public void ContractProductIdToLongType()
        {
            var id = ContractProductSiteReaderStub.ReadContractProductId();

            var result = ContractProductSiteValidator.ContractProductIdToLongType(id);

            Assert.AreEqual(typeof(long), result.GetType());
        }
コード例 #2
0
        public void SiteId()
        {
            var id = ContractProductSiteReaderStub.ReadSiteId();

            var result = ContractProductSiteValidator.SiteId(id);

            Assert.AreEqual(02, result);
        }
コード例 #3
0
        public void IsContractProductIdNotNull()
        {
            var id = ContractProductSiteReaderStub.ReadContractProductId();

            var result = ContractProductSiteValidator.IsContractProductIdNotNull(id);

            Assert.IsTrue(result);
        }
コード例 #4
0
        public void ContractProductSitesFileNotFound()
        {
            var filePath    = string.Empty;;
            var reader      = new ContractProductSiteReaderStub(filePath);
            var dataFile    = new ContractProductSiteData(reader);
            var isFileFound = false;

            dataFile.SitesFileNotFound(isFileFound);
        }
コード例 #5
0
        public void NoSiteAvailableForProduct()
        {
            var products = ContractProductReaderStub.Products();
            var sites    = ContractProductSiteReaderStub.NoSites();


            SiteVolumeCalculator.NoSiteAvailableForProduct(products,
                                                           sites);
        }
コード例 #6
0
        public void EmptyContractProductSites()
        {
            var filePath = string.Empty;;
            var reader   = new ContractProductSiteReaderStub(filePath);
            var dataFile = new ContractProductSiteData(reader);

            var result = dataFile.EmptySites();

            Assert.AreEqual(0, result.Count());
        }
コード例 #7
0
        public void IsContractProductSiteAvailable()
        {
            var filePath = string.Empty;;
            var reader   = new ContractProductSiteReaderStub(filePath);
            var dataFile = new ContractProductSiteData(reader);

            var result = dataFile.IsSitesAvailable();

            Assert.IsTrue(result);
        }
コード例 #8
0
        public void AllContractProductSites()
        {
            var filePath = string.Empty;;
            var reader   = new ContractProductSiteReaderStub(filePath);
            var dataFile = new ContractProductSiteData(reader);

            var result = dataFile.Records();

            Assert.AreEqual(1, result.ElementAt(0).ContractProductId);
            Assert.AreEqual(002, result.ElementAt(0).SiteId);
        }
コード例 #9
0
        public void AllContractProductSites()
        {
            var filePath   = "ContractProductSites.xml";
            var reader     = new ContractProductSiteReaderStub(filePath);
            var datafile   = new ContractProductSiteData(reader);
            var repository = new ContractProductSiteRepository(datafile);
            var result     = repository.Records();

            Assert.AreEqual(1, result.ElementAt(0).ContractProductId);
            Assert.AreEqual(002, result.ElementAt(0).SiteId);
        }
コード例 #10
0
        public void IsVolumeAvailableForContractProductSite()
        {
            var sites        = ContractProductSiteReaderStub.Sites();
            var volumes      = ContractProductSiteVolumeReaderStub.AllVolumes();
            var actualResult =
                SiteVolumeCalculator.IsVolumeAvailableForContractProductSite(sites,
                                                                             volumes);


            Assert.AreEqual(true, actualResult);
        }
コード例 #11
0
        public void ProductSites()
        {
            var products = ContractProductReaderStub.Products();
            var sites    = ContractProductSiteReaderStub.Sites();


            var result =
                SiteVolumeCalculator.ProductSites(products, sites);

            Assert.AreEqual(3, result.ElementAt(0).ContractProductId);
        }
コード例 #12
0
        public void SiteVolumes()
        {
            var sites   = ContractProductSiteReaderStub.Sites();
            var volumes = ContractProductSiteVolumeReaderStub.AllVolumes();

            var contractProductSiteVolumes =
                SiteVolumeCalculator.SiteVolumes(sites, volumes);

            Assert.AreEqual(200,
                            contractProductSiteVolumes.ElementAt(0).Volume);
            Assert.AreEqual(100,
                            contractProductSiteVolumes.ElementAt(1).Volume);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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);
        }
コード例 #15
0
        [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);
        }
コード例 #16
0
        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);
        }