Пример #1
0
		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");
		}
Пример #2
0
		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");
		}
Пример #3
0
		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");
		}