コード例 #1
0
 public void SetUp()
 {
     theFubuRequest  = new InMemoryFubuRequest();
     theData         = new InMemoryRequestData();
     objectConverter = new ObjectConverter();
     theRequest      = new FubuSmartRequest(theData, objectConverter, theFubuRequest);
 }
コード例 #2
0
 protected override void beforeEach()
 {
     _viewModel = new TestControlViewModel();
     _request   = new InMemoryFubuRequest();
     _request.Set(_viewModel);
     Services.Inject <IFubuRequest>(_request);
 }
コード例 #3
0
        public void build_an_object_with_dependencies()
        {
            var request = new InMemoryFubuRequest();

            var def = new ObjectDef(typeof (FakeJsonBehavior));
            def.DependencyByValue(typeof (IFubuRequest), request);
            var jsonWriter = def.DependencyByType(typeof (IJsonWriter), typeof (AjaxAwareJsonWriter));
            jsonWriter.DependencyByType(typeof (IOutputWriter), typeof (OutputWriter));
            jsonWriter.DependencyByType(typeof(IRequestData), typeof(InMemoryRequestData));
            def.DependencyByType(typeof (IRequestData), typeof (InMemoryRequestData));

            var container =
                new Container(x =>
                {
                    x.For<IFileSystem>().Use<FileSystem>();
                    x.For<IHttpWriter>().Use<NulloHttpWriter>();
                    x.For<IActionBehavior>().UseInstance(new ObjectDefInstance(def));
                    x.For<ILogger>().Use<Logger>();
                    x.For<ISystemTime>().Use(() => SystemTime.Default());
                });

            var jsonBehavior = container.GetInstance<IActionBehavior>().ShouldBeOfType<FakeJsonBehavior>();
            jsonBehavior.Writer.ShouldBeOfType<AjaxAwareJsonWriter>();
            jsonBehavior.Request.ShouldBeTheSameAs(request);
        }
コード例 #4
0
        public void build_an_object_with_dependencies()
        {
            var request = new InMemoryFubuRequest();


            var def = new ObjectDef(typeof(FakeJsonBehavior));

            def.DependencyByValue(typeof(IFubuRequest), request);
            var jsonWriter = def.DependencyByType(typeof(IJsonWriter), typeof(AjaxAwareJsonWriter));

            jsonWriter.DependencyByType(typeof(IOutputWriter), typeof(OutputWriter));
            jsonWriter.DependencyByType(typeof(IRequestData), typeof(InMemoryRequestData));
            def.DependencyByType(typeof(IRequestData), typeof(InMemoryRequestData));

            var container =
                new Container(x =>
            {
                x.For <IFileSystem>().Use <FileSystem>();
                x.For <IHttpWriter>().Use <NulloHttpWriter>();
                x.For <IActionBehavior>().Use(new ObjectDefInstance(def));
                x.For <ILogger>().Use <Logger>();
                x.For <ISystemTime>().Use(SystemTime.Default);
            });

            var jsonBehavior = container.GetInstance <IActionBehavior>().ShouldBeOfType <FakeJsonBehavior>();

            jsonBehavior.Writer.ShouldBeOfType <AjaxAwareJsonWriter>();
            jsonBehavior.Request.ShouldBeTheSameAs(request);
        }
コード例 #5
0
 public static void UsingInMemoryFubuRequest()
 {
     // SAMPLE: using-in-memory-fubu-request
     var request = new InMemoryFubuRequest();
     request.Set(new PrivateMessage{Name = "Darth Vader"});
     // ENDSAMPLE
 }
コード例 #6
0
        public InvocationContext(Envelope envelope, HandlerChain chain)
        {
            if (envelope == null)
            {
                throw new ArgumentNullException("envelope");
            }

            if (envelope.Log != null)
            {
                Set(typeof(IChainExecutionLog), envelope.Log);
            }

            var currentChain = new CurrentChain(chain, _emptyDictionary);

            Set(typeof(ICurrentChain), currentChain);

            _envelope = envelope;
            var inputType = envelope.Message.GetType();
            var request   = new InMemoryFubuRequest();

            request.Set(inputType, _envelope.Message);

            Set(typeof(IFubuRequest), request);
            Set(typeof(IInvocationContext), this);
            Set(typeof(Envelope), envelope);
        }
コード例 #7
0
        public void SetUp()
        {
            _page     = MockRepository.GenerateMock <IFubuPage <InputModel> >();
            _renderer = MockRepository.GenerateStub <IPartialRenderer>();
            var serviceLocator   = MockRepository.GenerateStub <IServiceLocator>();
            var namingConvention = MockRepository.GenerateStub <IElementNamingConvention>();

            _tags = new TagGenerator <InputModel>(new TagProfileLibrary(), namingConvention,
                                                  serviceLocator);

            _viewTypeRegistry = MockRepository.GenerateStub <IPartialViewTypeRegistry>();
            serviceLocator.Stub(s => s.GetInstance <IPartialViewTypeRegistry>()).Return(_viewTypeRegistry);

            var inMemoryFubuRequest = new InMemoryFubuRequest();

            inMemoryFubuRequest.Set(new InputModel());

            _page.Stub(s => s.Get <IFubuRequest>()).Return(inMemoryFubuRequest);

            _model = new InputModel {
                Partials = new List <PartialModel> {
                    new PartialModel()
                }
            };
            _page.Expect(p => p.Get <ITagGenerator <InputModel> >()).Return(_tags);
            _page.Expect(p => p.Model).Return(_model);
            _page.Expect(p => p.Get <IPartialRenderer>()).Return(_renderer);
            _page.Expect(p => p.ServiceLocator).Return(serviceLocator);
        }
コード例 #8
0
        public void SetUp()
        {
            theContainer = new Container();
            theFacility  = new StructureMapContainerFacility(theContainer);

            theRequest = new InMemoryFubuRequest();

            theContainer.Inject <IFubuRequest>(theRequest);
        }
コード例 #9
0
        protected override void beforeEach()
        {
            theRequest = new InMemoryFubuRequest();
            Services.Inject <IFubuRequest>(theRequest);

            MockFor <IServiceLocator>().Stub(x => x.GetInstance <IFubuRequest>()).Return(theRequest);

            thePage = MockFor <IFubuPage <TestModelForActivation> >();
        }
コード例 #10
0
        protected override void beforeEach()
        {
            theRequest = new InMemoryFubuRequest();

            theContinuation = FubuContinuation.EndWithStatusCode(HttpStatusCode.NotModified);
            theRequest.Set(theContinuation);

            Services.Inject <IFubuRequest>(theRequest);
        }
コード例 #11
0
        public void SetUp()
        {
            _theRuleCache = new PageActivationRuleCache(new IPageActivationSource[0]);
            theServices   = MockRepository.GenerateMock <IServiceLocator>();

            theRequest = new InMemoryFubuRequest();
            theServices.Stub(x => x.GetInstance <IFubuRequest>()).Return(theRequest);

            theActivator = new PageActivator(theServices, _theRuleCache);
        }
コード例 #12
0
        public static void UsingInMemoryFubuRequest()
        {
            // SAMPLE: using-in-memory-fubu-request
            var request = new InMemoryFubuRequest();

            request.Set(new PrivateMessage {
                Name = "Darth Vader"
            });
            // ENDSAMPLE
        }
コード例 #13
0
        public void SetUp()
        {
            request = new InMemoryFubuRequest();
            writer = MockRepository.GenerateMock<IOutputWriter>();

            request.Set("some html");

            var behavior = new RenderHtmlBehavior(writer, request);
            behavior.Invoke();
        }
 public void SetUp()
 {
     request = new InMemoryFubuRequest();
     handler = MockRepository.GenerateStub<IValidationContinuationHandler>();
     flash = MockRepository.GenerateStub<IFlash>();
     policy = new PlaceOrderValidationFailurePolicy(request, handler, flash);
     var notification = Notification.Invalid();
     var failure = new ValidationFailure(null, notification, null);
     policy.Handle(failure);
 }
コード例 #15
0
        public void SetUp()
        {
            request = new InMemoryFubuRequest();
            writer = MockRepository.GenerateMock<IOutputWriter>();

            request.Set("some text");

            var behavior = new RenderTextBehavior<string>(writer, request, MimeType.Html);
            behavior.Invoke();
        }
コード例 #16
0
        protected override void beforeEach()
        {
            _theServices = MockRepository.GenerateMock <IServiceLocator>();

            _theRequest = new InMemoryFubuRequest();
            _theRequest.Set(new SubclassTestModelForActivation());
            _theServices.Stub(x => x.GetInstance <IFubuRequest>()).Return(_theRequest);
            _simpleFubuPage = new SimpleFubuPage <TestModelForActivation>();
            ClassUnderTest.Activate(_theServices, _simpleFubuPage);
        }
コード例 #17
0
        protected override void beforeEach()
        {
            theMessage = new Message1();
            theRequest = new InMemoryFubuRequest();
            theRequest.Set(theMessage);
            Services.Inject <IFubuRequest>(theRequest);

            ClassUnderTest.InsideBehavior = MockFor <IActionBehavior>();

            ClassUnderTest.Invoke();
        }
コード例 #18
0
        public void SetUp()
        {
            request = new InMemoryFubuRequest();
            writer  = MockRepository.GenerateMock <IOutputWriter>();

            request.Set("some html");

            var behavior = new RenderHtmlBehavior(writer, request);

            behavior.Invoke();
        }
コード例 #19
0
        protected override void beforeEach()
        {
            document = new HtmlDocument();
            var request = new InMemoryFubuRequest();

            Services.Inject <IFubuRequest>(request);

            request.Set(document);

            ClassUnderTest.Invoke();
        }
コード例 #20
0
        public void find_values_invokes_the_fubu_request()
        {
            var request = new InMemoryFubuRequest();
            var address = new Address();

            request.Set(address);

            var source = new ValueSource<Address>(request);

            source.FindValues().ShouldBeOfType<SimpleValues<Address>>()
                .Subject.ShouldBeTheSameAs(address);
        }
コード例 #21
0
        public void find_values_invokes_the_fubu_request()
        {
            var request = new InMemoryFubuRequest();
            var address = new Address();

            request.Set(address);

            var source = new ValueSource <Address>(request);

            source.FindValues().ShouldBeOfType <SimpleValues <Address> >()
            .Subject.ShouldBeTheSameAs(address);
        }
コード例 #22
0
        public void SetUp()
        {
            request = new InMemoryFubuRequest();
            writer  = MockRepository.GenerateMock <IOutputWriter>();


            request.Set("some text");

            var behavior = new RenderTextBehavior <string>(writer, request, MimeType.Html);

            behavior.Invoke();
        }
コード例 #23
0
ファイル: FeedSourcesTester.cs プロジェクト: rmueller/fubumvc
        public void return_values_for_direct_enumerable()
        {
            var enumerable = new AddressValuesEnumerable();

            var request = new InMemoryFubuRequest();

            request.Set(enumerable);

            var source = new DirectFeedSource <AddressValuesEnumerable, Address>(request);

            source.GetValues().Select(x => x.ValueFor(o => o.City))
            .ShouldHaveTheSameElementsAs("Austin", "Dallas", "Houston");
        }
コード例 #24
0
        public StructureMapPageHarness(IContainer container)
            : base(new T(), new SimpleFubuPage <T>())
        {
            Container = container;
            Request   = new InMemoryFubuRequest();
            container.Inject(Request);

            Request.Set(Model);

            Page.ServiceLocator = new StructureMapServiceLocator(Container);

            Page.Model = Model;
        }
コード例 #25
0
        public StructureMapPageHarness(IContainer container)
            : base(new T(), new FubuPage <T>())
        {
            Container = container;
            Request   = new InMemoryFubuRequest();
            container.Inject(Request);

            Request.Set(Model);

            container.BuildUp(Page);

            Page.SetModel(Request);
        }
コード例 #26
0
        protected override void beforeEach()
        {
            var repository = new InMemoryRepository(null);

            Services.Inject <IRepository>(repository);

            _fubuRequest = new InMemoryFubuRequest();
            _requestedId = Guid.NewGuid();
            _fubuRequest.Set(new ItemRequest {
                Id = _requestedId
            });
            Services.Inject <IFubuRequest>(_fubuRequest);
        }
コード例 #27
0
        public void SetUp()
        {
            _builder = MockRepository.GenerateMock <IWebFormsControlBuilder>();
            _request = new InMemoryFubuRequest();

            _builder.Stub(b => b.LoadControlFromVirtualPath(null, null))
            .IgnoreArguments()
            .Return(new TestControl());

            _executeCatcher = _builder.CaptureArgumentsFor(b => b.ExecuteControl(null, null));

            _parentView = new TestView();
            _renderer   = new PartialRenderer(_builder);
        }
コード例 #28
0
        public InvocationContext(Envelope envelope, HandlerChain chain)
        {
            if (envelope == null) throw new ArgumentNullException("envelope");

            var currentChain = new CurrentChain(chain, _emptyDictionary);
            Set(typeof(ICurrentChain), currentChain);

            _envelope = envelope;
            var inputType = envelope.Message.GetType();
            var request = new InMemoryFubuRequest();
            request.Set(inputType, _envelope.Message);

            Set(typeof(IFubuRequest), request);
            Set(typeof(IInvocationContext), this);
            Set(typeof(Envelope), envelope);
        }
コード例 #29
0
        public void SetUp()
        {
            WrappedBehaviorWasInvoked = false;
            NextBehaviorWasInvoked    = false;

            theContainer = new Container();

            theRequest = new InMemoryFubuRequest();
            theContainer.Inject <IFubuRequest>(theRequest);

            theService = new Service();
            theContainer.Inject(theService);

            theNode = Wrapper.For <MyBehavior>();
            theNode.AddAfter(Wrapper.For <FollowingBehavior>());
        }
コード例 #30
0
        public void can_inject_arguments_into_the_behavior_factory()
        {
            var standInCurrentHttpRequest = new StandInCurrentHttpRequest();
            var inMemoryFubuRequest       = new InMemoryFubuRequest();

            var arguments = new ServiceArguments()
                            .With <ICurrentHttpRequest>(standInCurrentHttpRequest)
                            .With <IFubuRequest>(inMemoryFubuRequest);

            var behavior = ContainerFacilitySource
                           .BuildBehavior(arguments, ObjectDef.ForType <GuyWhoNeedsRequest>(), x => { })
                           .As <GuyWhoNeedsRequest>();

            behavior.Http.ShouldBeTheSameAs(standInCurrentHttpRequest);
            behavior.Request.ShouldBeTheSameAs(inMemoryFubuRequest);
        }
コード例 #31
0
        public void current_context_and_group_with_normal_chain()
        {
            var currentChain = MockRepository.GenerateMock<ICurrentChain>();
            currentChain.Stub(x => x.OriginatingChain).Return(new BehaviorChain());

            var graph = new DiagnosticGraph();
            graph.Add(typeof(DiagnosticChain).Assembly);

            var request = new InMemoryFubuRequest();
            request.Set(new GroupRequest{Name = "FubuMVC.Diagnostics"});

            var context = new DiagnosticContext(currentChain, request, graph);

            context.CurrentChain().ShouldBeNull();
            context.CurrentGroup().Name.ShouldEqual("FubuMVC.Diagnostics");
        }
コード例 #32
0
        public void can_inject_arguments_into_the_behavior_factory()
        {
            var standInCurrentHttpRequest = new StandInCurrentHttpRequest();
            var inMemoryFubuRequest = new InMemoryFubuRequest();

            var arguments = new ServiceArguments()
                .With<ICurrentHttpRequest>(standInCurrentHttpRequest)
                .With<IFubuRequest>(inMemoryFubuRequest);

            var behavior = ContainerFacilitySource
                .BuildBehavior(arguments, ObjectDef.ForType<GuyWhoNeedsRequest>(), x => { })
                .As<GuyWhoNeedsRequest>();

            behavior.Http.ShouldBeTheSameAs(standInCurrentHttpRequest);
            behavior.Request.ShouldBeTheSameAs(inMemoryFubuRequest);
        }
コード例 #33
0
        public void SetUp()
        {
            var request = new InMemoryFubuRequest();
            var container = StructureMapContainerFacility.GetBasicFubuContainer().GetNestedContainer();
            container.Inject<IFubuRequest>(request);

            theEtagRequest = new ETagRequest();
            theTarget = new Target();

            request.Set(theEtagRequest);
            request.Set(theTarget);

            // The FubuTupleBinder should be registered by default
            var binder = container.GetInstance<IObjectResolver>();

            theTuple = binder.BindModel(typeof (ETagTuple), new InMemoryRequestData()).Value.ShouldBeOfType<ETagTuple>();
        }
コード例 #34
0
        public void SetUp()
        {
            request = new InMemoryFubuRequest();

            message = new Message
            {
                Number = 10,
                Details = new Detail[]
                {
                    new Detail("Jeremy", 36),
                    new Detail("Max", 6),
                    new Detail("Natalie", 28),
                }
            };

            data = new InMemoryStreamingData();
            data.JsonInputIs(message);
        }
コード例 #35
0
        public void SetUp()
        {
            var request   = new InMemoryFubuRequest();
            var container = StructureMapContainerFacility.GetBasicFubuContainer().GetNestedContainer();

            container.Inject <IFubuRequest>(request);

            theEtagRequest = new ETagRequest();
            theTarget      = new Target();

            request.Set(theEtagRequest);
            request.Set(theTarget);

            // The FubuTupleBinder should be registered by default
            var binder = container.GetInstance <IObjectResolver>();

            theTuple = binder.BindModel(typeof(ETagTuple), new InMemoryRequestData()).Value.ShouldBeOfType <ETagTuple>();
        }
コード例 #36
0
        public void SetUp()
        {
            request = new InMemoryFubuRequest();

            message = new Message
            {
                Number  = 10,
                Details = new Detail[]
                {
                    new Detail("Jeremy", 36),
                    new Detail("Max", 6),
                    new Detail("Natalie", 28),
                }
            };

            data = new InMemoryStreamingData();
            data.JsonInputIs(message);
        }
コード例 #37
0
        public void SetUp()
        {
            WrappedBehaviorWasInvoked = false;
            NextBehaviorWasInvoked    = false;

            theContainer = new Container();
            theContainer.Inject <IDebugReport>(new DebugReport());
            theContainer.Inject(MockRepository.GenerateMock <IDebugDetector>());

            theRequest = new InMemoryFubuRequest();
            theContainer.Inject <IFubuRequest>(theRequest);

            theService = new Service();
            theContainer.Inject(theService);

            theNode = Wrapper.For <MyBehavior>();
            theNode.AddAfter(Wrapper.For <FollowingBehavior>());
        }
コード例 #38
0
        protected override void beforeEach()
        {
            Action <ITargetHandler, Input> action = (c, i) => c.OneInZeroOut(i);

            Services.Inject(action);

            theInput = new SpecialInput();

            var request = new InMemoryFubuRequest();

            request.Set(theInput);
            Services.Inject <IFubuRequest>(request);

            MockFor <ITargetHandler>().Expect(x => x.OneInZeroOut(theInput));

            ClassUnderTest.InsideBehavior = MockFor <IActionBehavior>();

            ClassUnderTest.Invoke();
        }
コード例 #39
0
        protected override void beforeEach()
        {
            var repository = new InMemoryRepository(null);

            Services.Inject <IRepository>(repository);


            _site = new Site();
            repository.Save(_site);


            _fubuRequest = new InMemoryFubuRequest();
            _fubuRequest.Set(new ItemRequest {
                Id = _site.Id
            });
            Services.Inject <IFubuRequest>(_fubuRequest);

            ClassUnderTest.Invoke();
        }
コード例 #40
0
        protected override void beforeEach()
        {
            Func <ITargetHandler, Input, Output> func = (c, i) => c.OneInOneOut(i);

            Services.Inject <Func <ITargetHandler, Input, Output> >(func);

            theInput       = new SpecialInput();
            expectedOutput = new Output();

            var request = new InMemoryFubuRequest();

            request.Set(theInput);
            Services.Inject <IFubuRequest>(request);

            MockFor <ITargetHandler>().Expect(x => x.OneInOneOut(theInput)).Return(expectedOutput);

            ClassUnderTest.InsideBehavior = MockFor <IActionBehavior>();

            ClassUnderTest.Invoke();
        }
コード例 #41
0
        protected override void beforeEach()
        {
            theMessage = new Message1();

            var request = new InMemoryFubuRequest();

            request.Set(theMessage);
            Services.Inject <IFubuRequest>(request);

            theInitialState = new SagaState();

            theHandler = MockFor <ITestingSagaHandler>();

            theInnerBehavior     = MockFor <IActionBehavior>();
            ClassUnderTest.Inner = theInnerBehavior;

            theRepository = MockFor <ISagaRepository <SagaState, Message1> >();

            theContextIs();

            ClassUnderTest.Invoke();
        }
コード例 #42
0
        public void SetUp()
        {
            _page = MockRepository.GenerateMock<IFubuPage<InputModel>>();
            _renderer = MockRepository.GenerateStub<IPartialRenderer>();
            var serviceLocator = MockRepository.GenerateStub<IServiceLocator>();
            var namingConvention = MockRepository.GenerateStub<IElementNamingConvention>();
            _tags = new TagGenerator<InputModel>(new TagProfileLibrary(), namingConvention,
                                                 serviceLocator);

            _viewTypeRegistry = MockRepository.GenerateStub<IPartialViewTypeRegistry>();
            serviceLocator.Stub(s => s.GetInstance<IPartialViewTypeRegistry>()).Return(_viewTypeRegistry);

            var inMemoryFubuRequest = new InMemoryFubuRequest();
            inMemoryFubuRequest.Set(new InputModel());

            _page.Stub(s => s.Get<IFubuRequest>()).Return(inMemoryFubuRequest);

            _model = new InputModel{Partials=new List<PartialModel>{new PartialModel()}};
            _page.Expect(p => p.Get<ITagGenerator<InputModel>>()).Return(_tags);
            _page.Expect(p => p.Model).Return(_model);
            _page.Expect(p => p.Get<IPartialRenderer>()).Return(_renderer);
            _page.Expect(p => p.ServiceLocator).Return(serviceLocator);
        }
        public void SetUp()
        {
            WrappedBehaviorWasInvoked = false;
            NextBehaviorWasInvoked = false;

            theContainer = new Container();
            theContainer.Inject<IDebugReport>(new DebugReport(null, null));
            theContainer.Inject(MockRepository.GenerateMock<IDebugDetector>());

            theRequest = new InMemoryFubuRequest();
            theContainer.Inject<IFubuRequest>(theRequest);

            theService = new Service();
            theContainer.Inject(theService);

            theNode = Wrapper.For<MyBehavior>();
            theNode.AddAfter(Wrapper.For<FollowingBehavior>());
        }
コード例 #44
0
 public void SetUp()
 {
     theFubuRequest = new InMemoryFubuRequest();
     theData = new InMemoryRequestData();
     objectConverter = new ObjectConverter();
     theRequest = new FubuSmartRequest(theData, objectConverter, theFubuRequest);
 }
        public void SetUp()
        {
            WrappedBehaviorWasInvoked = false;
            NextBehaviorWasInvoked = false;

            theContainer = new Container();

            theRequest = new InMemoryFubuRequest();
            theContainer.Inject<IFubuRequest>(theRequest);

            theService = new Service();
            theContainer.Inject(theService);

            theNode = Wrapper.For<MyBehavior>();
            theNode.AddAfter(Wrapper.For<FollowingBehavior>());
        }
コード例 #46
0
 public void SetUp()
 {
     request = new InMemoryFubuRequest();
 }
コード例 #47
0
        public void SetUp()
        {
            theContainer = new Container();
            theFacility = new StructureMapContainerFacility(theContainer);

            theRequest = new InMemoryFubuRequest();

            theContainer.Inject<IFubuRequest>(theRequest);
        }
コード例 #48
0
        public void SetUp()
        {
            _theRuleCache = new PageActivationRuleCache(new IPageActivationSource[0]);
            theServices = MockRepository.GenerateMock<IServiceLocator>();

            theRequest = new InMemoryFubuRequest();
            theServices.Stub(x => x.GetInstance<IFubuRequest>()).Return(theRequest);

            theActivator = new PageActivator(theServices, _theRuleCache);
        }
コード例 #49
0
        public void SetUp()
        {
            _mocks = new MockRepository();
            _view = MockRepository.GenerateStub<IFubuPage>();
            _partialView = MockRepository.GenerateStub<IFubuPage>();
            _request = new InMemoryFubuRequest();
            _renderer = MockRepository.GenerateMock<IPartialRenderer>();

            _model = new TestModel();
            _partialModel = new PartialTestModel();

            _model.PartialModel = _partialModel;

            _request.Set(_model);

            _expression = new RenderPartialExpression<TestModel>(_view, _renderer, _request);
            _expression.Using<IFubuPage>(v => { _wasCalled = true; });
        }