public void WrapsSingleBreak() { int[] expected = new int[] { 1, 2, 3 }; EnumerableTester <int> first; JoinedEnumerable <int> joined = InitSingle(out first); foreach (int actual in joined) { Assert.AreEqual(expected[0], actual, "first one was not what was expected."); break; } Assert.IsTrue(first.WasDisposed, "should have been disposed of."); }
public void WrapsSingleBreak() { int[] expected = new int[] { 1, 2, 3 }; EnumerableTester first; JoinedEnumerable joined = InitSingle(out first); foreach (int actual in joined) { Assert.AreEqual(expected[0], actual, "first one was not what was expected."); break; } // ensure that the first was disposed of even though we didn't enumerate // all the way through Assert.IsTrue(first.WasDisposed, "should have been disposed of."); }
public void WrapsSingle() { int[] expected = new int[] { 1, 2, 3 }; EnumerableTester <int> first; JoinedEnumerable <int> joined = InitSingle(out first); int index = 0; foreach (int actual in joined) { Assert.AreEqual(expected[index], actual, "Failure at " + index); index++; } Assert.AreEqual(expected.Length, index, "Every expected value was found"); Assert.IsTrue(first.WasDisposed, "should have been disposed of."); }
public void WrapsMultiple() { int[] expected = new int[] { 1, 2, 3, 4, 5, 6 }; EnumerableTester first; EnumerableTester second; JoinedEnumerable joined = InitMultiple(out first, out second); int index = 0; foreach (int actual in joined) { Assert.AreEqual(expected[index], actual, "Failure at " + index.ToString()); index++; } Assert.AreEqual(expected.Length, index, "Every expected value was found"); Assert.IsTrue(first.WasDisposed, "first should have been disposed of."); Assert.IsTrue(second.WasDisposed, "second should have been disposed of. "); }
private static void WrapsMultipleBreak(int breakIndex) { int[] expected = new int[] { 1, 2, 3, 4, 5, 6 }; EnumerableTester <int> first; EnumerableTester <int> second; JoinedEnumerable <int> joined = InitMultiple(out first, out second); int index = 0; foreach (int actual in joined) { Assert.AreEqual(expected[index], actual, "Failure at " + index); index++; if (index == breakIndex) { break; } } Assert.IsTrue(first.WasDisposed, "first should have been disposed of."); Assert.IsTrue(second.WasDisposed, "second should have been disposed of. "); }
protected string GenerateSubquery(PersistentClass model, IMapping mapping) { Dialect.Dialect dialect = Factory.Dialect; Settings settings = Factory.Settings; if (!model.HasSubclasses) { return(model.Table.GetQualifiedName(dialect, settings.DefaultCatalogName, settings.DefaultSchemaName)); } HashedSet <Column> columns = new HashedSet <Column>(); foreach (Table table in model.SubclassTableClosureIterator) { if (!table.IsAbstractUnionTable) { foreach (Column column in table.ColumnIterator) { columns.Add(column); } } } StringBuilder buf = new StringBuilder().Append("( "); IEnumerable <PersistentClass> siter = new JoinedEnumerable <PersistentClass>(new SingletonEnumerable <PersistentClass>(model), new SafetyEnumerable <PersistentClass>(model.SubclassIterator)); foreach (PersistentClass clazz in siter) { Table table = clazz.Table; if (!table.IsAbstractUnionTable) { buf.Append("select "); foreach (Column col in columns) { if (!table.ContainsColumn(col)) { SqlType sqlType = col.GetSqlTypeCode(mapping); buf.Append(dialect.GetSelectClauseNullString(sqlType)).Append(" as "); } buf.Append(col.Name); buf.Append(StringHelper.CommaSpace); } buf.Append(clazz.SubclassId).Append(" as clazz_"); buf.Append(" from ").Append(table.GetQualifiedName(dialect, settings.DefaultCatalogName, settings.DefaultSchemaName)); buf.Append(" union "); if (dialect.SupportsUnionAll) { buf.Append("all "); } } } if (buf.Length > 2) { //chop the last union (all) buf.Length -= (dialect.SupportsUnionAll ? 11 : 7); //" union " : "all " } return(buf.Append(" )").ToString()); }