public void CanParseShortestValidTableString()
        {
            IList <InvolvedTable> tables = IssueUtils.ParseInvolvedTables("[T:F]1||2||3;[Y:G]A");

            Assert.AreEqual(2, tables.Count);

            InvolvedTable table1 = tables[0];

            Assert.AreEqual("T", table1.TableName);
            Assert.AreEqual("F", table1.KeyField);
            IList <RowReference> rows1 = table1.RowReferences;

            Assert.AreEqual(3, rows1.Count);
            Assert.AreEqual("1", rows1[0].Key);
            Assert.AreEqual("2", rows1[1].Key);
            Assert.AreEqual("3", rows1[2].Key);

            InvolvedTable table2 = tables[1];

            Assert.AreEqual("Y", table2.TableName);
            Assert.AreEqual("G", table2.KeyField);
            IList <RowReference> rows2 = table2.RowReferences;

            Assert.AreEqual(1, rows2.Count);
            Assert.AreEqual("A", rows2[0].Key);
        }
        public void CanParseInvolvedTablesWithOids()
        {
            IList <InvolvedTable> tables =
                IssueUtils.ParseInvolvedTables("[Table1]1||2;[Table2]1000||1001");

            Assert.AreEqual(2, tables.Count);

            InvolvedTable table1 = tables[0];

            Assert.AreEqual("Table1", table1.TableName);
            Assert.IsNull(table1.KeyField);
            IList <RowReference> rows1 = table1.RowReferences;

            Assert.AreEqual(2, rows1.Count);
            Assert.AreEqual(1, rows1[0].OID);
            Assert.AreEqual(2, rows1[1].OID);

            InvolvedTable table2 = tables[1];

            Assert.AreEqual("Table2", table2.TableName);
            Assert.IsNull(table2.KeyField);
            IList <RowReference> rows2 = table2.RowReferences;

            Assert.AreEqual(2, rows2.Count);
            Assert.AreEqual(1000, rows2[0].OID);
            Assert.AreEqual(1001, rows2[1].OID);
        }
Exemple #3
0
        private IList <InvolvedTable> ParseInvolvedTables(
            [NotNull] string involvedTablesString, Guid qualityConditionGuid)
        {
            IAlternateKeyConverter keyConverter =
                _alternateKeyConverterProvider?.GetConverter(qualityConditionGuid);

            return(IssueUtils.ParseInvolvedTables(involvedTablesString, keyConverter));
        }
        public void CanParseInvolvedTableWithKeyFieldNoIds()
        {
            IList <InvolvedTable> tables = IssueUtils.ParseInvolvedTables("[Table:FieldName]");

            Assert.AreEqual(1, tables.Count);

            InvolvedTable table = tables[0];

            Assert.AreEqual("Table", table.TableName);
            Assert.AreEqual("FieldName", table.KeyField);
            IList <RowReference> rows = table.RowReferences;

            Assert.AreEqual(0, rows.Count);
        }
        private static void AssertFastEnough([NotNull] string involvedTables,
                                             int count,
                                             double maximumMilliseconds)
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            for (int i = 0; i < count; i++)
            {
                IssueUtils.ParseInvolvedTables(involvedTables);
            }

            stopwatch.Stop();
            long milliseconds = stopwatch.ElapsedMilliseconds;

            double millisecondsPerOperation = (double)milliseconds / count;

            Console.WriteLine(@"Parsing {0}: {1} ms", involvedTables, millisecondsPerOperation);

            Assert.LessOrEqual(millisecondsPerOperation, maximumMilliseconds);
        }
        private static void ExpectException([NotNull] string involvedTablesString,
                                            [CanBeNull] string expectedMessage)
        {
            try
            {
                IList <InvolvedTable> involvedTables =
                    IssueUtils.ParseInvolvedTables(involvedTablesString);

                foreach (InvolvedTable involvedTable in involvedTables)
                {
                    Console.WriteLine(@"- {0}", involvedTable);
                }

                Assert.Fail("Exception expected for invalid string: {0}", involvedTablesString);
            }
            catch (AssertionException exception)
            {
                Console.WriteLine(exception.Message);
                if (expectedMessage != null)
                {
                    Assert.AreEqual(expectedMessage, exception.Message);
                }
            }
        }
        public void CanParseEmptyTableString1()
        {
            IList <InvolvedTable> involvedTables = IssueUtils.ParseInvolvedTables(string.Empty);

            Assert.AreEqual(0, involvedTables.Count);
        }