public void should_be_bank_to_prince_regent()
        {
            const string bank         = "Bank";
            const string princeRegent = "Prince Regent";

            var accountId                   = Guid.NewGuid();
            var tappedAtBankCommand         = new DeviceTappedCommand(accountId, bank, "rail");
            var tappedAtprinceRegentCommand = new DeviceTappedCommand(accountId, princeRegent, "rail");
            var accountSpy                  = new AccountSpy();

            var container = new WindsorContainer();

            container.AddFacility <SubstituterFacility>(config =>
            {
                config.WithContainer(container)
                .Substitute <IAccount>(sub => sub.Instance(accountSpy));
            });

            container.Install(new InstallDevices());

            var handleDevice = container.Resolve <HandleDevice>();

            handleDevice.Handle(tappedAtBankCommand);
            handleDevice.Handle(tappedAtprinceRegentCommand);

            Assert.That(accountSpy[accountId].OriginDestination,
                        Is.EqualTo(OriginDestination.OriginToDestination(bank, princeRegent)));
            Assert.That(accountSpy[accountId].Fare, Is.EqualTo(5));

            container.Release(handleDevice);
        }
示例#2
0
        private OriginDestination GetOriginDestination()
        {
            var origin      = _origin(_taps);
            var destination = _destination(_taps) ?? origin;

            if (null == origin && null == destination)
            {
                return(OriginDestination.NoJourney());
            }

            var originDestination = OriginDestination.OriginToDestination(origin.Location, destination.Location);

            return(originDestination);
        }
示例#3
0
        public void should_be_bank_to_prince_regent()
        {
            const string bank         = "Bank";
            const string princeRegent = "Prince Regent";
            const short  fare         = 10;

            var journey = new Journey();

            var msg1 = new DeviceTappedCommand(journey.AccountId, bank, "rail");
            var msg2 = new DeviceTappedCommand(journey.AccountId, princeRegent, "rail");

            journey.RecieveTap(msg2);
            journey.RecieveTap(msg1);

            journey.AssignFare(od => fare);

            Assert.That(journey.Project().OriginDestination,
                        Is.EqualTo(OriginDestination.OriginToDestination(bank, princeRegent)));
            Assert.That(journey.Project().Fare, Is.EqualTo(10));
        }