public void GetDisplayString() { MetaModel m = Utils.CommonInitialize(true); var route = RouteTable.Routes[0] as MyDynamicDataRoute; MetaTable t = m.Tables[TestDataContext.TableFooWithDefaults]; var foo = new FooWithDefaults(); Assert.AreEqual(String.Empty, t.GetDisplayString(null), "#A1"); AssertExtensions.Throws <HttpException> (() => t.GetDisplayString(String.Empty), "#A2"); Assert.AreEqual("hello", t.GetDisplayString(foo), "#A3"); AssertExtensions.Throws <HttpException> (() => t.GetDisplayString("TestString"), "#A4"); // The method looks at the entity type to see if it has an overriden ToString method, // it ignores such methods on the passed "row" var foo2 = new FooWithToString(); Assert.AreEqual("hello", t.GetDisplayString(foo2), "#B1"); t = m.Tables[TestDataContext.TableFooWithToString]; Assert.AreEqual("ValueFrom_ToString", t.GetDisplayString(foo2), "#C1"); // If we pass an object which is not of EntityType, // the method returns the result of row.ToString () Assert.AreEqual(foo.GetType().ToString(), t.GetDisplayString(foo), "#C2"); var foo3 = new FooNoDefaultsWithPrimaryKey(); t = m.Tables[TestDataContext.TableFooNoDefaultsWithPrimaryKey]; Assert.AreEqual(String.Empty, t.GetDisplayString(foo3), "#D1"); }
public void GetPrimaryKeyString_Row() { MetaModel m = Utils.CommonInitialize(true); var route = RouteTable.Routes[0] as MyDynamicDataRoute; MetaTable t = m.Tables[TestDataContext.TableFooWithDefaults]; var foo = new FooWithDefaults(); Assert.AreEqual(String.Empty, t.GetPrimaryKeyString((object)null), "#A1"); Assert.AreEqual("primary key value,456,True", t.GetPrimaryKeyString(foo), "#A2"); var foo2 = new FooNoDefaultsWithPrimaryKey(); AssertExtensions.Throws <HttpException> (() => t.GetPrimaryKeyString(foo2), "#B1"); t = m.Tables[TestDataContext.TableFooSettableDefaults]; var foo3 = new FooSettableDefaults(null, null, null); Assert.AreEqual(String.Empty, t.GetPrimaryKeyString(foo3), "#C1"); foo3 = new FooSettableDefaults(null, String.Empty, null); Assert.AreEqual(",,", t.GetPrimaryKeyString(foo3), "#C2"); foo3 = new FooSettableDefaults(String.Empty, null, null); Assert.AreEqual(",,", t.GetPrimaryKeyString(foo3), "#C2"); }
public void GetActionPath_Action_Row() { MetaModel m = Utils.CommonInitialize(true); var route = RouteTable.Routes[0] as MyDynamicDataRoute; MetaTable t = m.Tables[TestDataContext.TableFooWithDefaults]; var foo = new FooWithDefaults(); Assert.AreEqual(String.Empty, t.GetActionPath(null, (object)null), "#A1"); AssertExtensions.Throws <HttpException> (() => t.GetActionPath(PageAction.Details, (object)"test"), "#A2"); Assert.AreEqual(Utils.BuildActionName(t, PageAction.Details, "PrimaryKeyColumn1=primary%20key%20value&PrimaryKeyColumn2=456&PrimaryKeyColumn3=True"), t.GetActionPath(PageAction.Details, foo), "#A3"); t = m.Tables[TestDataContext.TableFooNoDefaultsWithPrimaryKey]; var foo2 = new FooNoDefaultsWithPrimaryKey(); route.GetVirtualPathCalled = false; Assert.AreEqual(Utils.BuildActionName(t, PageAction.Details), t.GetActionPath(PageAction.Details, foo2), "#B1"); Assert.AreEqual(true, route.GetVirtualPathCalled, "#B1-1"); Assert.AreEqual(3, route.GetVirtualPathValues.Count, "#B1-2"); route.GetVirtualPathCalled = false; foo2.PrimaryKeyColumn1 = String.Empty; Assert.AreEqual(Utils.BuildActionName(t, PageAction.Details), t.GetActionPath(PageAction.Details, foo2), "#C1"); Assert.AreEqual(true, route.GetVirtualPathCalled, "#C1-1"); Assert.AreEqual(3, route.GetVirtualPathValues.Count, "#C1-2"); route.GetVirtualPathCalled = false; foo2.PrimaryKeyColumn1 = "SomeValue"; Assert.AreEqual(Utils.BuildActionName(t, PageAction.Details, "PrimaryKeyColumn1=SomeValue"), t.GetActionPath(PageAction.Details, foo2), "#D1"); Assert.AreEqual(true, route.GetVirtualPathCalled, "#D1-1"); Assert.AreEqual(3, route.GetVirtualPathValues.Count, "#D1-2"); }