public void GetTokens_MultipleConventions_ReturnsSingleDataName()
        {
            var input = new NamingTest
            {
                Little_BITOfEverything123456789MixedIn = "Foo."
            };

            var expected = new[]
            {
                ModelGrammar.TokenObjectBegin("Naming Test"),
                ModelGrammar.TokenProperty("Little BIT Of Everything 123456789 Mixed In"),
                ModelGrammar.TokenPrimitive("Foo."),
                ModelGrammar.TokenObjectEnd
            };

            var resolver = new CombinedResolverStrategy(
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.NoChange, " "),
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.PascalCase),
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.CamelCase),
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.Lowercase, "-"),
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.Uppercase, "_"));

            var actual = new ModelWalker(new DataWriterSettings(resolver)).GetTokens(input).ToArray();

            Assert.Equal(expected, actual, false);
        }
        public void ColumnWithDot()
        {
            switch (namingTestColl.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SqlClientProvider":
                namingTest = namingTestColl.AddNew();
                namingTest.str().TestFieldDot = "FieldDot";
                namingTestColl.Save();
                Assert.IsTrue(namingTestColl.LoadAll());
                Assert.AreEqual(1, namingTestColl.Count);
                break;

            default:
                Assert.Ignore("Database not set up, yet.");
                break;
            }
        }
        public void Init2()
        {
            namingTestColl = new NamingTestCollection();
            namingTest     = new NamingTest();
            // The table Naming.Test has a 'dot' in it,
            // so that is being tested as well.
            switch (namingTestColl.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SqlClientProvider":
                namingTestColl.LoadAll();
                namingTestColl.MarkAllAsDeleted();
                namingTestColl.Save();
                break;

            default:
                break;
            }
        }
        public void ColumnWithDotAndSetGuids()
        {
            switch (namingTestColl.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SqlClientProvider":
                Guid keyGuid = Guid.NewGuid();
                namingTest = namingTestColl.AddNew();
                namingTest.GuidKeyAlias = keyGuid;
                namingTest.str().TestFieldDot = "FieldDot";
                namingTestColl.Save();
                Assert.IsTrue(namingTestColl.LoadAll());
                Assert.AreEqual(1, namingTestColl.Count);
                Assert.AreEqual(namingTestColl[0].GuidKeyAlias.Value, keyGuid);
                break;

            default:
                Assert.Ignore("Database not set up, yet.");
                break;
            }
        }
        public void SetGuidPrimaryKey()
        {
            NamingTestCollection namingTestColl = new NamingTestCollection();
            NamingTest           namingTest     = new NamingTest();

            switch (namingTestColl.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SqlClientProvider":
                string testGuid = "b3883c65-ff94-47c4-8b0c-76896bedd45a";
                namingTest.GuidKeyAlias = new Guid(testGuid);
                namingTest.Save();
                Guid?tempKey = namingTest.GuidKeyAlias;
                namingTest.MarkAsDeleted();
                namingTest.Save();
                Assert.AreEqual(testGuid, tempKey.Value.ToString());
                break;

            default:
                Assert.Ignore("Sql Server only");
                break;
            }
        }
        public void InsertGuidPrimaryKey()
        {
            NamingTestCollection namingTestColl = new NamingTestCollection();
            NamingTest           namingTest     = new NamingTest();

            switch (namingTestColl.es.Connection.ProviderSignature.DataProviderName)
            {
            case "EntitySpaces.SqlClientProvider":
                namingTest.Save();
                Guid?tempKey = namingTest.GuidKeyAlias;

                namingTest = new NamingTest();
                Assert.IsTrue(namingTest.LoadByPrimaryKey(tempKey.Value));
                namingTest.MarkAsDeleted();
                namingTest.Save();
                break;

            default:
                Assert.Ignore("Sql Server only");
                break;
            }
        }
        public void GetTokens_MultipleConventions_ReturnsSingleDataName()
        {
            var input = new NamingTest
            {
                Little_BITOfEverything123456789MixedIn = "Foo."
            };

            var expected = new[]
            {
                ModelGrammar.TokenObjectBegin("Naming Test"),
                ModelGrammar.TokenProperty("Little BIT Of Everything 123456789 Mixed In"),
                ModelGrammar.TokenPrimitive("Foo."),
                ModelGrammar.TokenObjectEnd
            };

            var resolver = new CombinedResolverStrategy(
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.NoChange, " "),
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.PascalCase),
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.CamelCase),
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.Lowercase, "-"),
                new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.Uppercase, "_"));

            var actual = new ModelWalker(new DataWriterSettings(resolver)).GetTokens(input).ToArray();

            Assert.Equal(expected, actual, false);
        }