public void BailsOnNullReturnedFromFactory()
        {
            IResultFactory resultFactory = A.Fake <IResultFactory>();

            ResultFactoryRegistry.RegisterResultMode("resultMode", resultFactory);

            // verify factory registry does not allow nulls to be returned
            A.CallTo(() => resultFactory.CreateResult("resultMode", "resultText")).Returns(null);
            Assert.Throws <ArgumentNullException>(() => ResultFactoryRegistry.CreateResult("resultMode:resultText"));
        }
        public void SelectsFactoryByResultMode()
        {
            IResultFactory resultFactory = A.Fake <IResultFactory>();

            ResultFactoryRegistry.RegisterResultMode("resultMode", resultFactory);

            Result result = new Result();

            // verify factory registry does not allow nulls to be returned
            A.CallTo(() => resultFactory.CreateResult("resultMode", "resultText")).Returns(result);
            Assert.AreSame(result, ResultFactoryRegistry.CreateResult("resultMode:resultText"));
        }
        public void BailsOnNullReturnedFromFactory()
        {
            MockRepository mocks         = new MockRepository();
            IResultFactory resultFactory = (IResultFactory)mocks.CreateMock(typeof(IResultFactory));

            ResultFactoryRegistry.RegisterResultMode("resultMode", resultFactory);

            // verify factory registry does not allow nulls to be returned
            using (Record(mocks))
            {
                Expect.Call(resultFactory.CreateResult("resultMode", "resultText")).Return(null);
            }

            using (Playback(mocks))
            {
                ResultFactoryRegistry.CreateResult("resultMode:resultText");
            }
        }
        public void SelectsFactoryByResultMode()
        {
            MockRepository mocks         = new MockRepository();
            IResultFactory resultFactory = (IResultFactory)mocks.CreateMock(typeof(IResultFactory));

            ResultFactoryRegistry.RegisterResultMode("resultMode", resultFactory);

            Result result = new Result();

            // verify factory registry does not allow nulls to be returned
            using (Record(mocks))
            {
                Expect.Call(resultFactory.CreateResult("resultMode", "resultText")).Return(result);
            }

            using (Playback(mocks))
            {
                Assert.AreSame(result, ResultFactoryRegistry.CreateResult("resultMode:resultText"));
            }
        }