예제 #1
0
        public void Parser_Generates_TableName_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\test.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.Contains("TABLE Test")));
        }
예제 #2
0
        public void Parser_Generates_ServerName_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\test.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.StartsWith("SERVER @dn74")));
        }
예제 #3
0
        public void Parser_Generates_Connect_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\test.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.Contains("CONNECT fsrvd00/f1nsur3")));
        }
예제 #4
0
        public void Specifying_Connect_Without_Server_Renders_Without_Server_Heading()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\TestConnectNoServer.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.StartsWith("CONNECT fsrvd00/f1nsur3")));
        }
예제 #5
0
        public void Parser_Generates_SinglePrimaryKey_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\test.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.Contains(@"KEY pk01 PRIMARY
    Id")));
        }
예제 #6
0
        public void Parser_Generates_ComplexClasses_For_Multiple_Class_Diagram_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\MultipleClassesDiagram.cd");

            // Assert
            Assert.AreEqual(2, siContent.Count());

            Assert.AreEqual(@"SERVER @dn74
CONNECT fsrvd00/f1nsur3

TABLESPACE fsrvt001

TABLE PL_AccountHolders
    RecordLegId INT
    ContactName CHAR(10) NULL
    ContactSurname CHAR(10) NULL
    EmailAddress CHAR(120) NULL
    FaxNumber CHAR(15) NULL
    TelephoneNumber CHAR(15) NULL
    PhysicalAddressId INT NULL
    PostalAddressId INT NULL

KEY pk01 PRIMARY
    RecordLegId

KEY key01 UNIQUE
    PhysicalAddressId

KEY key02 UNIQUE
    PostalAddressId

GRANT SELECT INSERT DELETE UPDATE TO PUBLIC

PROC Insert
PROC Update
PROC SelectOne
PROC DeleteOne
PROC Exists
PROC SelectAll", siContent["AccountHolder"]);

            Assert.AreEqual(@"SERVER @dn74
CONNECT fsrvd00/f1nsur3

TABLESPACE fsrvt001

TABLE PL_UserDetails
    Id INT
    Username CHAR(15)

KEY pk01 PRIMARY
    Id


GRANT SELECT INSERT DELETE UPDATE TO PUBLIC

PROC Insert
PROC Update
PROC SelectOne
PROC DeleteOne
PROC Exists
PROC SelectAll", siContent["UserDetails"]);
        }
예제 #7
0
        public void Parser_Generates_ComplexClass_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\AccountHolderDiagram.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.Equals(@"SERVER @dn74
CONNECT fsrvd00/f1nsur3

TABLESPACE fsrvt001

TABLE PL_AccountHolders
    RecordLegId INT
    ContactName CHAR(10) NULL
    ContactSurname CHAR(10) NULL
    EmailAddress CHAR(120) NULL
    FaxNumber CHAR(15) NULL
    TelephoneNumber CHAR(15) NULL
    PhysicalAddressId INT NULL
    PostalAddressId INT NULL

KEY pk01 PRIMARY
    RecordLegId

KEY key01 UNIQUE
    PhysicalAddressId

KEY key02 UNIQUE
    PostalAddressId

GRANT SELECT INSERT DELETE UPDATE TO PUBLIC

PROC Insert
PROC Update
PROC SelectOne
PROC DeleteOne
PROC Exists
PROC SelectAll")));
        }
예제 #8
0
        public void Parser_Generates_MultipleUniqueConstraint_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\TestWithMultipleUniqueConstraint.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.Contains(@"KEY key01 UNIQUE
    Gender

KEY key02 UNIQUE
    Age")));
        }
예제 #9
0
        public void Parser_Generates_NoPrimaryKeys_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();
            var regexMatch = new Regex("KEY(.+)PRIMARY", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\TestNoPrimaryKey.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => !regexMatch.IsMatch(kv.Value)));
        }
예제 #10
0
        public void Parser_Generates_Grant_Statements_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\TestMultiplePrimaryKeysSameTableSpace.cd");


            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.Contains(@"GRANT SELECT INSERT DELETE UPDATE TO PUBLIC

PROC Insert
PROC Update
PROC SelectOne
PROC DeleteOne
PROC Exists
PROC SelectAll")));
        }
예제 #11
0
        public void Parser_Generates_MultiplePrimaryKeys_Correctly()
        {
            // Arrange
            var parser = new SIGenerator.Parser.Parser();

            // Act
            var siContent = parser.Parse(@"..\..\TestClassDiagrams\TestMultiplePrimaryKeysSameTableSpace.cd");

            // Assert
            Assert.IsTrue(siContent.All(kv => kv.Value.Contains(@"KEY pk01 PRIMARY
    Id
    Description")));
        }