public void TestDeepDeclaration() { var export = new DataExtract <DeepDeclaration>(entitySpec.Begin().Add("*")); var spec = new entitySpec(export.TopEntity); CollectionAssert.AreEqual(new[] { "TheFirst.X1.Ss1.X", "TheFirst.X1.Ss1.Y", "TheFirst.X1.Ss2.X", "TheFirst.X1.Ss2.Y", "TheFirst.X2.Ss1.X", "TheFirst.X2.Ss1.Y", "TheFirst.X2.Ss2.X", "TheFirst.X2.Ss2.Y", "TheSecond.X1.Ss1.X", "TheSecond.X1.Ss1.Y", "TheSecond.X1.Ss2.X", "TheSecond.X1.Ss2.Y", "TheSecond.X2.Ss1.X", "TheSecond.X2.Ss1.Y", "TheSecond.X2.Ss2.X", "TheSecond.X2.Ss2.Y", }, spec.fields.Select(_ => _.name)); }
public SchoolBaseTests() { School = new School { Name = "Old School", Classes = new[] { "Klass 1a", "Klass 1b", "Klass 2a", "Klass 2b", "Klass 3a", "Klass 3b" }.Select( _ => new Class { Name = _, Students = new List <Student>() }).ToList() }; var firstNames = new[] { "Ada", "Bertil", "Cecilia", "David", "Elina", "Fredrik", "Gun", "Hans", "Ida", "Jan", "Klara" }; var lastNames = new[] { "Johansson", "Eriksson", "Karlsson", "Andersson", "Nilsson", "Svensson", "Pettersson" }; for (var i = 0; i < 100; i++) { School.Classes[i % School.Classes.Count].Students.Add(new Student { FirstName = firstNames[i % firstNames.Length], LastName = lastNames[i % lastNames.Length] }); } Spec = entitySpec.Begin("School") .Add("Name") .Add(entitySpec.Begin("Classes") .Add("Name") .Add(entitySpec.Begin("Students") .Add("FirstName") .Add("LastName"))); }
public void Test2() { var x = new DataExtract <AllPropertyTypes>( entitySpec.Begin() .Add("TheString") .Add("TheInt32") .Add("formula1").Formula("val(TheString)") .Add("formula2").Formula("str(TheInt32)") .Add("formula3").Formula("7")); var inverse = new entitySpec(x.TopEntity); }
public void Test() { var y = entitySpec.Begin().Add("*"); var z = JsonConvert.SerializeObject(y, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore, }); var x = new DataExtract <AllPropertyTypes>(entitySpec.Begin().Add("*")); var inverse = new entitySpec(x.TopEntity); }
public void TestThatInMemoryTableDoesntAllowDuplicateColumnNames() { var spec = new entitySpec() .Add("Name") .Add("Name"); var entity = Entity.Create(null, spec, typeof(School), null); var ex = Assert.Throws <ArgumentException>(() => { new InMemoryTable(entity, true, true, -1); }); Assert.AreEqual("Table 'School' contains duplicate column names 'NAME'", ex.Message); }
public void TestThatCircularReferenceCanOptionallyBeAllowed() { var entity = Entity.Create(null, _starSpec, typeof(SomethingWithCircularRef1), null, false); var spec = new entitySpec(entity); var json = JsonConvert.SerializeObject(spec, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }); Assert.AreEqual("{\"name\":\"SomethingWithCircularRef1\",\"fields\":[{\"name\":\"X\",\"type\":\"Int32\"},{\"name\":\"Down.X\"," + "\"externalname\":\"DownX\",\"type\":\"Int32\"},{\"name\":\"Down.Up\",\"externalname\":\"DownUp\",\"fields\":[{\"name\":\"@\"," + "\"externalname\":\"value\",\"type\":\"SomethingWithCircularRef1\"}]}]}", json); }
public void TestTestClassWithSneakyStuff() { var export = new DataExtract <TestClassWithSneakyStuff>(entitySpec.Begin().Add("*")); var spec = new entitySpec(export.TopEntity); CollectionAssert.AreEqual(new[] { "TheStruct.X", "TheStruct.Y", "TheList.NonObviousProperty", "TheList", "DictionariesAreSneaky", "ArraysAreSneaky", }, spec.fields.Select(_ => _.name)); var x = JsonConvert.SerializeObject(spec, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore, }); }
public TableNamingBase(entitySpec spec) { School = new DataExtract <School>(spec).TopEntity; Classes = School.Lists.Single(); Students = Classes.Lists.Single(); }