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