public void Update_Opening_Date()
        {
            var now = DateTime.Now;
            var auctionsDecoratorsFactory = new AuctionsMilestonesDecoratorsFactory();

            var decoratorAuctionMilestone = auctionsDecoratorsFactory.Make <UpdateOpeningParameter>(DecoratorsEnum.DecoratorAuctionMilestone);

            var updateOpeningParameter = new UpdateOpeningParameter(now);

            decoratorAuctionMilestone.SetStrategy(_updateOpeningDateStrategy);

            var auctionsDecoratorsChainOfResponsibilityFactory = new AuctionsMilestoneDecoratorsChainOfResponsibilityFactory();

            var openingDateStep = auctionsDecoratorsChainOfResponsibilityFactory.Make <Auction, UpdateOpeningParameter>(AuctionsChainOfResponsibilityEnum.MilestoneOpeningDateStepAction);
            var providerStep    = auctionsDecoratorsChainOfResponsibilityFactory.Make <Auction, UpdateOpeningParameter>(AuctionsChainOfResponsibilityEnum.MilestoneProvidersStepAction);

            openingDateStep.SetSuccessor(providerStep);

            decoratorAuctionMilestone.SetStepsToProcess(openingDateStep);

            Sut.Update <UpdateOpeningParameter>(decoratorAuctionMilestone, updateOpeningParameter);
        }
Example #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var auctionStrategyFactory = new AuctionStrategyFactory();

            var updateProviderStrategy =
                auctionStrategyFactory.Make <UpdateProviderParameter>(StrategyTypeEnum.UpdateProvider);

            var updateParameter =
                new UpdateProviderParameter(new Providers(new List <Provider> {
                new Provider {
                    Name = "Juan"
                }
            }));


            var auctionStatusFactory      = new AuctionStatusFactory();
            var roundAuctionStatusFactory = new RoundAuctionStatusFactory();
            var auction = new Auction(auctionStatusFactory, roundAuctionStatusFactory, AuctionStatusTypeEnum.New);

            auction.ChangeStatus(auctionStatusFactory.Make(AuctionStatusTypeEnum.Draft, auction));

            auction.Update(updateProviderStrategy, updateParameter);

            var newRound1 = new RoundAuction(auction);
            var newRound2 = new RoundAuction(auction);
            var newRound3 = new RoundAuction(auction);


            //Round Auction

            var addRoundAuctionStrategy =
                auctionStrategyFactory.Make <AddRoundAuctionParameter>(StrategyTypeEnum.AddRound);

            var addRoundAuctionParameters = new AddRoundAuctionParameter(newRound1);

            auction.Update(addRoundAuctionStrategy, addRoundAuctionParameters);


            var addRoundAuctionParameters2 = new AddRoundAuctionParameter(newRound2);

            auction.Update(addRoundAuctionStrategy, addRoundAuctionParameters2);


            var deleteRoundAuctionStrategy =
                auctionStrategyFactory.Make <DeleteRoundAuctionParameter>(StrategyTypeEnum.DeleteRound);
            var deleteRoundAuctionParameters = new DeleteRoundAuctionParameter(newRound1);

            auction.Update(deleteRoundAuctionStrategy, deleteRoundAuctionParameters);

            var deleteRoundAuctionParameters3 = new DeleteRoundAuctionParameter(newRound1);

            auction.Update(deleteRoundAuctionStrategy, deleteRoundAuctionParameters3);


            var deleteRoundAuctionParameters2 = new DeleteRoundAuctionParameter(newRound2);

            auction.Update(deleteRoundAuctionStrategy, deleteRoundAuctionParameters2);


            var auctionsDecoratorsFactory = new AuctionsMilestoneDecoratorsChainOfResponsibilityFactory();

            //var decorator = auctionsDecoratorsFactory.Make<AuctionMilestoneStrategyParameter>(DecoratorsEnum.DecoratorAuctionMilestone);



            //decorator.SetStrategy()
        }