Esempio n. 1
0
        public void WhenMultipleProvidersPerSchemeForRelatedTypes_ThenSelectsAppropriateOneForResolving()
        {
            var derived = Mock.Of <IDerivedFoo>();

            var fooProvider    = Mock.Of <IUriReferenceProvider <IFoo> >(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny <Uri>()) == derived);
            var deriveProvider = Mock.Of <IUriReferenceProvider <IDerivedFoo> >(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny <Uri>()) == derived);

            var uriService = new UriReferenceService(new IUriReferenceProvider[] { fooProvider, deriveProvider });

            var fooValue     = uriService.ResolveUri <IFoo>(new Uri("mock://kzu"));
            var derivedValue = uriService.ResolveUri <IDerivedFoo>(new Uri("mock://kzu"));

            Assert.Same(derived, fooValue);
            Assert.Same(derived, derivedValue);
        }
        public void WhenMultipleProvidersPerSchemeForRelatedTypes_ThenSelectsAppropriateOneForResolving()
        {
            var derived = Mock.Of<IDerivedFoo>();

            var fooProvider = Mock.Of<IUriReferenceProvider<IFoo>>(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny<Uri>()) == derived);
            var deriveProvider = Mock.Of<IUriReferenceProvider<IDerivedFoo>>(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny<Uri>()) == derived);

            var uriService = new UriReferenceService(new IUriReferenceProvider[] { fooProvider, deriveProvider });

            var fooValue = uriService.ResolveUri<IFoo>(new Uri("mock://kzu"));
            var derivedValue = uriService.ResolveUri<IDerivedFoo>(new Uri("mock://kzu"));

            Assert.Same(derived, fooValue);
            Assert.Same(derived, derivedValue);
        }
Esempio n. 3
0
        public void WhenMultipleProvidersPerScheme_ThenSelectsAppropriateOneForResolving()
        {
            var foo = Mock.Of <IFoo>();
            var bar = Mock.Of <IBar>();

            var fooProvider = Mock.Of <IUriReferenceProvider <IFoo> >(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny <Uri>()) == foo);
            var barProvider = Mock.Of <IUriReferenceProvider <IBar> >(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny <Uri>()) == bar);

            var uriService = new UriReferenceService(new IUriReferenceProvider[] { fooProvider, barProvider });

            var fooValue = uriService.ResolveUri <IFoo>(new Uri("mock://kzu"));
            var barValue = uriService.ResolveUri <IBar>(new Uri("mock://kzu"));

            Assert.Same(foo, fooValue);
            Assert.Same(bar, barValue);
        }
        public void WhenMultipleProvidersPerScheme_ThenSelectsAppropriateOneForResolving()
        {
            var foo = Mock.Of<IFoo>();
            var bar = Mock.Of<IBar>();

            var fooProvider = Mock.Of<IUriReferenceProvider<IFoo>>(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny<Uri>()) == foo);
            var barProvider = Mock.Of<IUriReferenceProvider<IBar>>(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny<Uri>()) == bar);

            var uriService = new UriReferenceService(new IUriReferenceProvider[] { fooProvider, barProvider });

            var fooValue = uriService.ResolveUri<IFoo>(new Uri("mock://kzu"));
            var barValue = uriService.ResolveUri<IBar>(new Uri("mock://kzu"));

            Assert.Same(foo, fooValue);
            Assert.Same(bar, barValue);
        }
        public void WhenSingleProviderProvidesMultipleResolvedTypes_ThenThrowsNotSupportedException()
        {
            var foo = Mock.Of<IDerivedFoo>();
            var bar = Mock.Of<IBar>();

            var fooProvider = new Mock<IUriReferenceProvider<IFoo>>();
            fooProvider.Setup(p => p.UriScheme).Returns("mock");
            fooProvider.Setup(p => p.ResolveUri(It.IsAny<Uri>())).Returns(foo);

            fooProvider.As<IUriReferenceProvider<IDerivedFoo>>()
                .Setup(x => x.ResolveUri(It.IsAny<Uri>()))
                .Returns(foo);

            var barProvider = Mock.Of<IUriReferenceProvider<IBar>>(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny<Uri>()) == bar);

            var uriService = new UriReferenceService(new IUriReferenceProvider[] { fooProvider.Object, barProvider });

            var fooValue = uriService.ResolveUri<IFoo>(new Uri("mock://kzu"));
            var bazValue = uriService.ResolveUri<IDerivedFoo>(new Uri("mock://kzu"));

            Assert.Same(fooValue, bazValue);
        }
Esempio n. 6
0
        public void WhenSingleProviderProvidesMultipleResolvedTypes_ThenThrowsNotSupportedException()
        {
            var foo = Mock.Of <IDerivedFoo>();
            var bar = Mock.Of <IBar>();

            var fooProvider = new Mock <IUriReferenceProvider <IFoo> >();

            fooProvider.Setup(p => p.UriScheme).Returns("mock");
            fooProvider.Setup(p => p.ResolveUri(It.IsAny <Uri>())).Returns(foo);

            fooProvider.As <IUriReferenceProvider <IDerivedFoo> >()
            .Setup(x => x.ResolveUri(It.IsAny <Uri>()))
            .Returns(foo);

            var barProvider = Mock.Of <IUriReferenceProvider <IBar> >(p => p.UriScheme == "mock" && p.ResolveUri(It.IsAny <Uri>()) == bar);

            var uriService = new UriReferenceService(new IUriReferenceProvider[] { fooProvider.Object, barProvider });

            var fooValue = uriService.ResolveUri <IFoo>(new Uri("mock://kzu"));
            var bazValue = uriService.ResolveUri <IDerivedFoo>(new Uri("mock://kzu"));

            Assert.Same(fooValue, bazValue);
        }