public void ShouldThrowInvalidOperationExceptionWhenDefaultExtensionCannotBeFound() { // Arrange var extensions = new Dictionary <string, Func <ServiceFactory, IExtensionBase> >(); var extender = new ExtenderProxy <string>(proxy => new Extender <string>(new ExtenderCore <string>(extensions), proxy, _ => null)); var component = new TestItem("TEST-ITEM"); // Act var exception = Assert .Throws <InvalidOperationException>(() => extender .Extend(component)); // Assert Assert.Equal("Default extension could not by found.", exception.Message); }
public void ShouldUseDefaultExtensionWhenConcreteExtensionIsNull() { // Arrange var defaultExtension = Mock.Of <IExtension <string, object> >(MockBehavior.Strict); var extensions = new Dictionary <string, Func <ServiceFactory, IExtensionBase> >(new Dictionary <string, Func <ServiceFactory, IExtensionBase> > { [typeof(TestItem).FullName] = _ => null, [typeof(object).FullName] = _ => defaultExtension }); var extender = new ExtenderProxy <string>(proxy => new Extender <string>(new ExtenderCore <string>(extensions), proxy, _ => null)); var component = new TestItem("TEST-ITEM"); Mock.Get(defaultExtension) .Setup(d => d.Extend(component, extender)); // Act & Assert extender.Extend(component); }
internal Oleaut32.IExtender GetProxyForControl(Control ctl) { Oleaut32.IExtender rval = null; if (proxyCache is null) { proxyCache = new Hashtable(); } else { rval = (Oleaut32.IExtender)proxyCache[ctl]; } if (rval is null) { if (ctl != parent && !GetControlBelongs(ctl)) { Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "!parent || !belongs NYI"); AxContainer c = FindContainerForControl(ctl); if (c is not null) { rval = new ExtenderProxy(ctl, c); } else { Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "unable to find proxy, returning null"); return(null); } } else { rval = new ExtenderProxy(ctl, this); } proxyCache.Add(ctl, rval); } Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "found proxy " + rval.ToString()); return(rval); }
internal Oleaut32.IExtender GetProxyForControl(Control ctl) { Oleaut32.IExtender rval = null; if (_proxyCache is null) { _proxyCache = new(); } else { _proxyCache.TryGetValue(ctl, out rval); } if (rval is null) { if (ctl != _parent && !GetControlBelongs(ctl)) { Debug.WriteLineIf(s_axHTraceSwitch.TraceVerbose, "!parent || !belongs NYI"); AxContainer c = FindContainerForControl(ctl); if (c is not null) { rval = new ExtenderProxy(ctl, c); } else { Debug.WriteLineIf(s_axHTraceSwitch.TraceVerbose, "unable to find proxy, returning null"); return(null); } } else { rval = new ExtenderProxy(ctl, this); } _proxyCache.Add(ctl, rval); } Debug.WriteLineIf(s_axHTraceSwitch.TraceVerbose, $"found proxy {rval}"); return(rval); }
internal System.Windows.Forms.UnsafeNativeMethods.IExtender GetProxyForControl(Control ctl) { System.Windows.Forms.UnsafeNativeMethods.IExtender extender = null; if (this.proxyCache == null) { this.proxyCache = new Hashtable(); } else { extender = (System.Windows.Forms.UnsafeNativeMethods.IExtender) this.proxyCache[ctl]; } if (extender == null) { if ((ctl != this.parent) && !this.GetControlBelongs(ctl)) { AxHost.AxContainer container = FindContainerForControl(ctl); if (container == null) { return null; } extender = new ExtenderProxy(ctl, container); } else { extender = new ExtenderProxy(ctl, this); } this.proxyCache.Add(ctl, extender); } return extender; }
/// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> internal UnsafeNativeMethods.IExtender GetProxyForControl(Control ctl) { UnsafeNativeMethods.IExtender rval = null; if (proxyCache == null) { proxyCache = new Hashtable(); } else { rval = (UnsafeNativeMethods.IExtender) proxyCache[ctl]; } if (rval == null) { if (ctl != parent && !GetControlBelongs(ctl)) { Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "!parent || !belongs NYI"); AxContainer c = FindContainerForControl(ctl); if (c != null) { rval = new ExtenderProxy(ctl, c); } else { Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "unable to find proxy, returning null"); return null; } } else { rval = new ExtenderProxy(ctl, this); } proxyCache.Add(ctl, rval); } Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "found proxy "+rval.ToString()); return rval; }