Esempio n. 1
0
        public void CompareDatasets_Given_datasets_with_same_unsorted_data_Method_fails()
        {
            var elementA = XElement.Parse(@"
<dataset name=""B"" table=""tableA"">
    <data>
        <row id=""10"" name=""AA""/>
        <row id=""11"" name=""BB""/>
    </data>
</dataset>
");

            var elementB = XElement.Parse(@"
<dataset name=""B"" table=""tableA"">
    <data>
        <row id=""11"" name=""BB""/>
        <row id=""10"" name=""AA""/>
    </data>
</dataset>
");

            var datasetElementA = DatasetElement.Load(elementA);
            var datasetElementB = DatasetElement.Load(elementB);

            try
            {
                DbSafeManagerHelper.CompareDatasets(datasetElementA, datasetElementB, new string[] { "id" }, true);
            }
            catch (AssertFailedException)
            {
                return;
            }

            Assert.Fail("An exception was not thrown");
        }
Esempio n. 2
0
        public void CompareDatasets_Given_different_number_of_rows_Method_fails()
        {
            var elementA = XElement.Parse(@"<dataset name=""A"" table=""tableA""><data/></dataset>");
            var elementB = XElement.Parse(@"
<dataset name=""B"" table=""tableA"">
    <data>
        <row/>
    </data>
</dataset>
");

            var datasetElementA = DatasetElement.Load(elementA);
            var datasetElementB = DatasetElement.Load(elementB);

            try
            {
                DbSafeManagerHelper.CompareDatasets(datasetElementA, datasetElementB, new string[] { "key" }, false);
            }
            catch (AssertFailedException ex)
            {
                StringAssert.Contains(ex.Message, "The number of rows are different.");
                return;
            }

            Assert.Fail("An exception was not thrown");
        }
Esempio n. 3
0
        public void Connection_is_not_reused()
        {
            // This test uses a global temp table (GTT) since a GTT is deleted when the connection that created it goes out of scope.
            var target = new SqlDatabaseClient(false)
            {
                ConnectionString = _connectionString
            };

            target.ExecuteCommand(_createGlobalTempTableCommand);

            var formatterManager = new FormatterManager();
            var actual           = target.ReadTable(_verifyIfTempTableExistsQuery, formatterManager);

            var expectedDatasetXml = @"
<dataset name=""a-name"" table=""a-name"">
  <data>
    <row TempTableExists=""0"" />
  </data>
</dataset>
";
            var xml             = XElement.Parse(expectedDatasetXml);
            var expectedDataset = DatasetElement.Load(xml);

            Assert.AreEqual(expectedDataset.Data.ToString(), actual.Data.ToString());
        }
Esempio n. 4
0
        public void CompareDatasets_Given_null_expected_data_and_actual_data_Method_succeed()
        {
            var elementA = XElement.Parse(@"<dataset name=""A"" table=""tableA""></dataset>");
            var elementB = XElement.Parse(@"<dataset name=""B"" table=""tableA""></dataset>");

            var datasetElementA = DatasetElement.Load(elementA);
            var datasetElementB = DatasetElement.Load(elementB);

            DbSafeManagerHelper.CompareDatasets(datasetElementA, datasetElementB, new string[] { "key" }, false);
        }
Esempio n. 5
0
        private DatasetElement FindDataset(string datasetName, XElement xml)
        {
            var dataset = DbSafeManagerHelper.FindChild(xml, FileDefinitionHelper.ElementNameDatasets, datasetName);

            if (dataset != null)
            {
                return(DatasetElement.Load(dataset));
            }

            return(null);
        }
Esempio n. 6
0
        public void CompareDatasets_Given_datasets_with_same_data_Method_succeed()
        {
            var element = XElement.Parse(@"
<dataset name=""B"" table=""tableA"">
    <data>
        <row id=""10"" name=""AA""/>
        <row id=""11"" name=""BB""/>
    </data>
</dataset>
");

            var datasetElementA = DatasetElement.Load(element);
            var datasetElementB = DatasetElement.Load(element);

            DbSafeManagerHelper.CompareDatasets(datasetElementA, datasetElementB, new string[] { "id" }, false);
        }
Esempio n. 7
0
        public void CompareDatasets_Given_not_null_expected_data_and_null_actual_data_Method_fails()
        {
            var elementA = XElement.Parse(@"<dataset name=""A"" table=""tableA""><data/></dataset>");
            var elementB = XElement.Parse(@"<dataset name=""B"" table=""tableA""></dataset>");

            var datasetElementA = DatasetElement.Load(elementA);
            var datasetElementB = DatasetElement.Load(elementB);

            try
            {
                DbSafeManagerHelper.CompareDatasets(datasetElementA, datasetElementB, new string[] { "key" }, false);
            }
            catch (AssertFailedException ex)
            {
                StringAssert.Contains(ex.Message, "Expected Data is not null but actual Data is null");
                return;
            }

            Assert.Fail("An exception was not thrown");
        }
Esempio n. 8
0
        public void CompareDatasets_Given_dataset_with_different_table_names_Method_fails()
        {
            var elementA = XElement.Parse(@"<dataset name=""A"" table=""tableA""></dataset>");
            var elementB = XElement.Parse(@"<dataset name=""B"" table=""tableB""></dataset>");

            var datasetElementA = DatasetElement.Load(elementA);
            var datasetElementB = DatasetElement.Load(elementB);

            var compareTableName = true;

            try
            {
                DbSafeManagerHelper.CompareDatasets(datasetElementA, datasetElementB, new string[] { "key" }, false, compareTableName);
            }
            catch (AssertFailedException ex)
            {
                StringAssert.Contains(ex.Message, "Table names are different");
                return;
            }

            Assert.Fail("An exception was not thrown");
        }
Esempio n. 9
0
        public void Write_read_and_compare_records()
        {
            var target = new SqlDatabaseClient(false)
            {
                ConnectionString = _connectionString
            };

            var deleteDataCommand = @"
DELETE [dbo].[Product];
DELETE [dbo].[Category];
DELETE [dbo].[Supplier];
";

            target.ExecuteCommand(deleteDataCommand);

            var datasetXml = @"
<dataset name=""suppliers"" setIdentityInsert=""true"" table=""Supplier"">
  <data>
    <row Id=""1"" Name=""supplier-1"" ContactName=""contact-name-1"" ContactPhone=""100-200-0001"" ContactEmail=""*****@*****.**"" />
    <row Id=""2"" Name=""supplier-2"" ContactName=""contact-name-2"" ContactPhone=""100-200-0002"" ContactEmail=""*****@*****.**"" />
    <row Id=""3"" Name=""supplier-3"" ContactName=""contact-name-3"" ContactPhone=""100-200-0003"" ContactEmail=""*****@*****.**"" />
  </data>
</dataset>
";
            var xml        = XElement.Parse(datasetXml);
            var dataset    = DatasetElement.Load(xml);

            target.WriteTable(dataset);

            var formatterManager = new FormatterManager();

            var selectRecordsQuery = "SELECT * FROM [dbo].[Supplier];";

            var actual = target.ReadTable(selectRecordsQuery, formatterManager);

            DbSafeManagerHelper.CompareDatasets(dataset, actual, new string[] { "Id" }, false, false);
        }
Esempio n. 10
0
        public void Write_read_and_compare_records()
        {
            var datasetXml = @"
<dataset name=""suppliers"" setIdentityInsert=""true"" table=""Supplier"">
  <data>
    <row id=""1"" name=""supplier-1"" contact_name=""contact-name-1"" contact_phone=""100-200-0001"" contact_email=""*****@*****.**"" />
    <row id=""2"" name=""supplier-2"" contact_name=""contact-name-2"" contact_phone=""100-200-0002"" contact_email=""*****@*****.**"" />
    <row id=""3"" name=""supplier-3"" contact_name=""contact-name-3"" contact_phone=""100-200-0003"" contact_email=""*****@*****.**"" />
  </data>
</dataset>
";
            var xml        = XElement.Parse(datasetXml);
            var dataset    = DatasetElement.Load(xml);

            _target.WriteTable(dataset);

            var formatterManager = new FormatterManager();

            var selectRecordsQuery = "SELECT * FROM public.supplier;";

            var actual = _target.ReadTable(selectRecordsQuery, formatterManager);

            DbSafeManagerHelper.CompareDatasets(dataset, actual, new string[] { "id" }, false, false);
        }
Esempio n. 11
0
        private DatasetElement ExecuteLoad(string xmlText)
        {
            XElement xml = XElement.Parse(xmlText);

            return(DatasetElement.Load(xml));
        }