public void supply_defaults_by_generic_in_a_bunch()
        {
            var container = new Container(x =>
            {
                x.For<IWidget>().Use<BWidget>();
                x.For<IService>().Use<AService>();
            });

            // SAMPLE: explicit-defaults-with-nested-closure
            var widget = new BWidget();
            var service = new BService();

            var guyWithWidgetAndService = container
                .With(x =>
                {
                    x.With<IWidget>(widget);
                    x.With<IService>(service);
                })
                .GetInstance<GuyWithWidgetAndService>();

            guyWithWidgetAndService
                .Widget.ShouldBeTheSameAs(widget);

            guyWithWidgetAndService
                .Service.ShouldBeTheSameAs(service);
            // ENDSAMPLE
        }
Example #2
0
        public void supply_defaults_with_args()
        {
            var container = new Container(x =>
            {
                x.For<IWidget>().Use<BWidget>();
                x.For<IService>().Use<AService>();
            });

            // SAMPLE: explicit-use-explicit-args
            var widget = new BWidget();
            var service = new BService();

            var args = new ExplicitArguments();
            args.Set<IWidget>(widget);
            args.Set<IService>(service);

            var guyWithWidgetAndService = container
                .GetInstance<GuyWithWidgetAndService>(args);

            guyWithWidgetAndService
                .Widget.ShouldBeTheSameAs(widget);

            guyWithWidgetAndService
                .Service.ShouldBeTheSameAs(service);
            // ENDSAMPLE
        }
        public void supply_defaults_by_generic()
        {
            // SAMPLE: explicit-arg-container
            var container = new Container(x =>
            {
                x.For<IWidget>().Use<BWidget>();
                x.For<IService>().Use<AService>();
            });
            // ENDSAMPLE

            // SAMPLE: explicit-fluent-interface
            var widget = new BWidget();
            var service = new BService();

            var guyWithWidgetAndService = container
                .With<IWidget>(widget)
                .With<IService>(service)
                .GetInstance<GuyWithWidgetAndService>();

            guyWithWidgetAndService
                .Widget.ShouldBeTheSameAs(widget);

            guyWithWidgetAndService
                .Service.ShouldBeTheSameAs(service);
            // ENDSAMPLE
        }
        public void supply_defaults_with_args()
        {
            var container = new Container(x =>
            {
                x.For <IWidget>().Use <BWidget>();
                x.For <IService>().Use <AService>();
            });

            // SAMPLE: explicit-use-explicit-args
            var widget  = new BWidget();
            var service = new BService();

            var args = new ExplicitArguments();

            args.Set <IWidget>(widget);
            args.Set <IService>(service);

            var guyWithWidgetAndService = container
                                          .GetInstance <GuyWithWidgetAndService>(args);

            guyWithWidgetAndService
            .Widget.ShouldBeTheSameAs(widget);

            guyWithWidgetAndService
            .Service.ShouldBeTheSameAs(service);
            // ENDSAMPLE
        }
        public void supply_defaults_by_generic_in_a_bunch()
        {
            var container = new Container(x =>
            {
                x.For <IWidget>().Use <BWidget>();
                x.For <IService>().Use <AService>();
            });

            // SAMPLE: explicit-defaults-with-nested-closure
            var widget  = new BWidget();
            var service = new BService();

            var guyWithWidgetAndService = container
                                          .With(x =>
            {
                x.With <IWidget>(widget);
                x.With <IService>(service);
            })
                                          .GetInstance <GuyWithWidgetAndService>();

            guyWithWidgetAndService
            .Widget.ShouldBeTheSameAs(widget);

            guyWithWidgetAndService
            .Service.ShouldBeTheSameAs(service);
            // ENDSAMPLE
        }
        public void supply_defaults_by_generic()
        {
            // SAMPLE: explicit-arg-container
            var container = new Container(x =>
            {
                x.For <IWidget>().Use <BWidget>();
                x.For <IService>().Use <AService>();
            });
            // ENDSAMPLE

            // SAMPLE: explicit-fluent-interface
            var widget  = new BWidget();
            var service = new BService();

            var guyWithWidgetAndService = container
                                          .With <IWidget>(widget)
                                          .With <IService>(service)
                                          .GetInstance <GuyWithWidgetAndService>();

            guyWithWidgetAndService
            .Widget.ShouldBeTheSameAs(widget);

            guyWithWidgetAndService
            .Service.ShouldBeTheSameAs(service);
            // ENDSAMPLE
        }
Example #7
0
        public void supply_defaults_by_generic()
        {
            var container = new Container(x => {
                x.For <IWidget>().Use <BWidget>();
                x.For <IService>().Use <AService>();
            });

            var widget  = new BWidget();
            var service = new BService();

            var guyWithWidgetAndService = container
                                          .With <IWidget>(widget)
                                          .With <IService>(service)
                                          .GetInstance <GuyWithWidgetAndService>();

            guyWithWidgetAndService
            .Widget.ShouldBeTheSameAs(widget);

            guyWithWidgetAndService
            .Service.ShouldBeTheSameAs(service);
        }
Example #8
0
        public void ShouldCallNotificationsBroker()
        {
            // given
            var          zServiceMock = new Mock <IZService>();
            Notification notification = new Filler <Notification>().Create();

            NotificationResponse notificationResponse = new Filler <NotificationResponse>().Create();

            // when
            zServiceMock.Setup(broker => broker.SendNotification(notification))
            .Returns(notificationResponse);

            // should
            var bService = new BService(zServiceMock.Object);

            bService.DoStuffB(notification);

            zServiceMock.Verify(broker =>
                                broker.SendNotification(notification),
                                Times.Once);
        }
        public void supply_defaults_by_generic()
        {
            var container = new Container(x => {
                x.For<IWidget>().Use<BWidget>();
                x.For<IService>().Use<AService>();
            });

            var widget = new BWidget();
            var service = new BService();

            var guyWithWidgetAndService = container
                .With<IWidget>(widget)
                .With<IService>(service)
                .GetInstance<GuyWithWidgetAndService>();

            guyWithWidgetAndService
                .Widget.ShouldBeTheSameAs(widget);

            guyWithWidgetAndService
                .Service.ShouldBeTheSameAs(service);
        }
Example #10
0
        public void ShouldCallXyzServiceToSendNotification()
        {
            // given
            var             xyzServiceMock = new Mock <IXYZService>();
            ABCNotification notification   = new Filler <ABCNotification>().Create();

            ABCNotificationResponse notificationResponse =
                new Filler <ABCNotificationResponse>().Create();

            xyzServiceMock.Setup(broker => broker.SendNotification(notification))
            .Returns(notificationResponse);

            // when
            var bService = new BService(xyzServiceMock.Object);

            bService.DoStuffB(notification);

            // then
            xyzServiceMock.Verify(
                broker => broker.SendNotification(notification),
                Times.Once);
        }