Rhino.Etl targeting 4.0 has 3 failing tests with Boo

15 views
Skip to first unread message

Jason Meckley

unread,
Dec 8, 2011, 10:18:47 PM12/8/11
to rhino-t...@googlegroups.com
I forked rhino.etl from hibernating rhinos in an attempt to target the 4.0 framework and introduce dynamics into the mix. I thought it would be a fun exercise :) I finally have the projects and build script targeting 4.0 but I have three failing tests, which were not failing prior to the 4.0 update.

Rhino.Etl.Tests.Dsl.AggregationFixture.CanPerformAggregationFromDsl [FAIL]
Assert.Equal() Failure
Position: First difference is at position 0
Expected: milk, sugar, coffee
Actual: System.String[]
Stack Trace:
c:\Users\jasonmeckley\Documents\Visual Studio 2010\Projects\rhino-etl\Rhino.Etl.Tests\Dsl\AggregationFixture.cs(33,0) at Rhino.Etl.Tests.Dsl.AggregationFixture.CanPerformAggregationFromDsl()

Rhino.Etl.Tests.Dsl.JoinFixture.CanWriteJoinsToDatabase [FAIL]
Assert.Equal() Failure
Position: First difference is at position 18
Expected: ayende rahien is: admin, janitor, employee, customer
Actual: ayende rahien is: System.String[]
Stack Trace:
c:\Users\jasonmeckley\Documents\Visual Studio 2010\Projects\rhino-etl\Rhino.Etl.Tests\Dsl\JoinFixture.cs(41,0) at Rhino.Etl.Tests.Dsl.JoinFixture.CanWriteJoinsToDatabase()

Rhino.Etl.Tests.Dsl.WireEtlProcessEventsFixture.CheckIfOnRowProcessedEventWasWired [FAIL]
Assert.Equal() Failure
Position: First difference is at position 0
Expected: chocolate, sugar, coffee
Actual: System.String[]
Stack Trace:
c:\Users\jasonmeckley\Documents\Visual Studio 2010\Projects\rhino-etl\Rhino.Etl.Tests\Dsl\WireEtlProcessEventsFixture.cs(33,0) at Rhino.Etl.Tests.Dsl.WireEtlProcessEventsFixture.CheckIfOnRowProcessedEventWasWired()

Rhino.Etl.Tests.LoadTest.LoadTestJoinsFixture.CanDoLargeJoinsefficently [SKIP]
It depends too much of what the machine is doing and how powerful it is

85 total, 3 failed, 1 skipped, took 155.514 seconds
default.ps1:Error: Failed to execute tests

The problem appears to be with boo & converting an enumerable to an array and preforming a string.Join().
for example
[Aggregate.boo line 12]
aggregate.names.ToArray(string)

I thought this may be a problem with Linq and another ToArray<string>() method somewhere so I replaced string.Join(", ", accumulate.names.ToArray(string)) with accumulate.names. This got me one step closer but the test still fails with 
Test 'Rhino.Etl.Tests.Dsl.AggregationFixture.CanPerformAggregationFromDsl' failed: Assert.Equal() Failure
Position: First difference is at position 0
Expected: milk, sugar, coffee
Actual:   [milk, sugar, coffee]
Dsl\AggregationFixture.cs(33,0): at Rhino.Etl.Tests.Dsl.AggregationFixture.CanPerformAggregationFromDsl()

I assume the brackets are coming from Boo and how it overrides ToString() for enumerables.

Ideally the tests are sound and failing tests means breaking changes. What should I do in this situation?
a. updates the boo scripts so the tests pass
b. update boo and/or Rhino.Dsl to properly handle ToArray(string) and leave the tests alone

Reply all
Reply to author
Forward
0 new messages