public void Dispose_SiteEventHandler_InvokesEventHandlerAndRemovesSiteFromComponent() { bool calledDisposed = false; var site = new Site(); var component = new MarshalByValueComponent() { Site = site }; component.Disposed += (sender, e) => { Assert.Same(component, sender); Assert.Same(EventArgs.Empty, e); calledDisposed = true; }; Assert.False(calledDisposed); site.Container.Add(component); component.Dispose(); Assert.True(calledDisposed); Assert.Empty(site.Container.Components); // Call multiple times. component.Site = site; site.Container = null; calledDisposed = false; component.Dispose(); Assert.True(calledDisposed); }
public void ToString_WithSite_ReturnsExpected() { var component = new MarshalByValueComponent() { Site = new Site() }; Assert.Equal("name [System.ComponentModel.MarshalByValueComponent]", component.ToString()); }
public void Disposed_AddRemoveEventHandler_Success() { bool calledDisposedHandler = false; void Handler(object sender, EventArgs e) => calledDisposedHandler = true; var component = new MarshalByValueComponent(); component.Disposed += Handler; component.Disposed -= Handler; component.Dispose(); Assert.False(calledDisposedHandler); }
/// <summary> /// 绑定显示数据的控件 /// </summary> /// <param name="control">显示数据的控件</param> /// <param name="dt">数据源,目前只支持DataTable和DataSet</param> private void DataBind(Control control, MarshalByValueComponent dt) { if (control == null) { return; } //为什么没有一个统一的DataSource呢? //GridView等 var tmpBaseDataBoundControl = control as BaseDataBoundControl; if (tmpBaseDataBoundControl != null) { tmpBaseDataBoundControl.DataSource = dt; tmpBaseDataBoundControl.DataBind(); return; } //Repeater var tmpRepeater = control as Repeater; if (tmpRepeater != null) { tmpRepeater.DataSource = dt; tmpRepeater.DataBind(); return; } //DataGrid、DataList var tmpBaseDataList = control as BaseDataList; if (tmpBaseDataList != null) { tmpBaseDataList.DataSource = dt; tmpBaseDataList.DataBind(); } //不在判断范围内,退出 }
public void ToString_NoSite_ReturnsExpected() { var component = new MarshalByValueComponent(); Assert.Equal("System.ComponentModel.MarshalByValueComponent", component.ToString()); }