public void ToString_should_return_string_representation_for_conflict_tables()
        {
            // Arrange
            ManualSpecification spec1 = new ManualSpecification();
            spec1.RequireTable( "t1" ).WithColumn( "column1" ).OfType( "int", 4 )
                                      .WithColumn( "irrelevant" ).OfType( "varchar", 1 ).Nullable();

            ManualSpecification spec2 = new ManualSpecification();
            spec2.RequireTable( "t1" ).WithColumn( "column1" ).OfType( "varchar", 4 )
                                      .WithColumn( "irrelevant" ).OfType( "varchar", 1 ).Nullable();

            CompareResult compareResult = spec1.Compare(spec2);

            string expected = "Conflict Table(s)\n" +
                              "----------------\n" +
                              "[t1]\n" +
                              "   Conflict Column(s)\n" +
                              "   ----------------\n" +
                              "   Expected: column1 : int(4)\n" +
                              "   But was:  column1 : varchar(4)\n\n";

            // Act
            string result = compareResult.ToString();

            // Assert
            Assert.That(result, Is.EqualTo(expected));
        }
        public void AssertIsSatisfiedBy_should_throw_exception_when_missing_tables()
        {
            // Arrange
            List<Table> tableList = new List<Table>
                                        {
                                            new Table( "irrelevant")
                                        };
            DbSpecification dbSpecification = new DbSpecification(tableList);
            ManualSpecification manualSpecification = new ManualSpecification();
            manualSpecification.RequireTable("t1");

            // Assert
            Assert.Throws<SpecificationException>(() => manualSpecification.AssertIsSatisfiedBy(dbSpecification));
        }
        public void ToString_should_return_string_representation_for_missing_tables()
        {
            // Arrange
            ManualSpecification spec1 = new ManualSpecification();
            spec1.RequireTable("TableName").WithColumn("Id").OfType("int", 4)
                                           .WithColumn("Desc").OfType("varchar", 100).Nullable()
                                           .Done();
            ManualSpecification spec2 = new ManualSpecification();

            CompareResult compareResult = spec1.Compare(spec2);

            string expected = "Missing Table(s)\n" +
                              "----------------\n" +
                              "[TableName]\n" +
                              "   Id : int(4)\n" +
                              "   Desc : varchar(100) NULLABLE\n\n";

            // Act
            string result = compareResult.ToString();

            // Assert
            Assert.That(result, Is.EqualTo(expected));
        }