public void Initialize() { if (Settings.Instance == null) { Settings.Initialize(b => { b.Scheme = "tst"; }); } this._uriResolvedObjectHolder = Substitute.For <IUriResolvedObjectHolder>(); this._uriResolutionCustomization = Substitute.For <IUriResolutionCustomization>(); this._uriModuleItemResolver = Substitute.For <IUriModuleItemResolver>(); this._resolveSetupFactory = Substitute.For <IResolveSetupFactory>(); this._traceListener = Substitute.For <TraceListener>(); this._uriDisconnectTable = Substitute.For <IUriDisconnectTable>(); IUriModuleItemResolver uriModuleResolverStub; var uriModuleResolverIndex = Substitute.For <IIndex <UriModuleItemResolverKey, IUriModuleItemResolver> >(); uriModuleResolverIndex .TryGetValue(new UriModuleItemResolverKey("module", "item"), out uriModuleResolverStub) .Returns( x => { x[1] = this._uriModuleItemResolver; return(true); }); var anyPlacementResolver = Substitute.For <IUriPlacementResolver>(); anyPlacementResolver.Resolve(null, null, null).ReturnsForAnyArgs(Substitute.For <IUriPlacementConnector>()); this._uriResolutionCustomization.ModuleItemResolvers.Returns(uriModuleResolverIndex); this._uriResolutionCustomization.PlacementResolvers.Returns(Enumerable.Repeat(anyPlacementResolver, 1)); Trace.Listeners.Add(this._traceListener); }
public void ExposesUriModuleItemResolversInUriResolutionCustomization() { var shell = this.CreateShell(); var expectedResolver = Substitute.For <IUriModuleItemResolver>(); shell.AddUriModuleItemResolver(new UriModuleItemResolverKey("module", "item"), expectedResolver); IUriModuleItemResolver actualResolver1 = null; shell.ModuleItemResolvers.TryGetValue(new UriModuleItemResolverKey("othermodule", "otheritem"), out actualResolver1); Assert.IsNull(actualResolver1); IUriModuleItemResolver actualResolver2 = null; shell.ModuleItemResolvers.TryGetValue(new UriModuleItemResolverKey("module", "item"), out actualResolver2); Assert.AreEqual(expectedResolver, actualResolver2); }
/// <summary> /// Adds the given <see cref="IUriModuleItemResolver"/> as an object resolver by the given key. /// </summary> /// <param name="key">Key for access to the <see cref="IUriModuleItemResolver"/> being added.</param> /// <param name="uriModuleItemResolver">The <see cref="IUriModuleItemResolver"/> being added.</param> public void AddUriModuleItemResolver(UriModuleItemResolverKey key, IUriModuleItemResolver uriModuleItemResolver) { this._uriModuleItemResolvers.Add(key, uriModuleItemResolver); }
public void AddUriModuleItemResolver(UriModuleItemResolverKey key, IUriModuleItemResolver uriModuleItemResolver) { Contract.Requires <ArgumentNullException>(key != null); Contract.Requires <ArgumentNullException>(uriModuleItemResolver != null); }