Skip to content

Commit

Permalink
Exception handling during test class Disposal no longer relies on dep…
Browse files Browse the repository at this point in the history
…recated uses of ExceptionList objects.
  • Loading branch information
plioi committed Aug 5, 2013
1 parent b78f70c commit c9d8abc
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 21 deletions.
11 changes: 8 additions & 3 deletions src/Fixie/Behaviors/CreateInstancePerCase.cs
Expand Up @@ -30,9 +30,14 @@ public void Execute(Type testClass, Convention convention, Case[] cases)
var fixture = new Fixture(testClass, instance, convention.CaseExecution.Behavior, new[] { @case }); var fixture = new Fixture(testClass, instance, convention.CaseExecution.Behavior, new[] { @case });
convention.InstanceExecution.Behavior.Execute(fixture); convention.InstanceExecution.Behavior.Execute(fixture);


var disposalExceptions = Lifecycle.Dispose(instance); try
if (disposalExceptions.Any()) {
exceptions.Add(disposalExceptions); Lifecycle.Dispose(instance);
}
catch (Exception disposalException)
{
exceptions.Add(disposalException);
}
} }
} }
} }
Expand Down
9 changes: 6 additions & 3 deletions src/Fixie/Behaviors/CreateInstancePerTestClass.cs
Expand Up @@ -27,11 +27,14 @@ public void Execute(Type testClass, Convention convention, Case[] cases)
var fixture = new Fixture(testClass, instance, convention.CaseExecution.Behavior, cases); var fixture = new Fixture(testClass, instance, convention.CaseExecution.Behavior, cases);
convention.InstanceExecution.Behavior.Execute(fixture); convention.InstanceExecution.Behavior.Execute(fixture);


var disposalExceptions = Lifecycle.Dispose(instance); try
if (disposalExceptions.Any()) {
Lifecycle.Dispose(instance);
}
catch (Exception disposalException)
{ {
foreach (var @case in cases) foreach (var @case in cases)
@case.Exceptions.Add(disposalExceptions); @case.Exceptions.Add(disposalException);
} }
} }
} }
Expand Down
19 changes: 4 additions & 15 deletions src/Fixie/Behaviors/Lifecycle.cs
Expand Up @@ -27,22 +27,11 @@ public static ExceptionList Construct(Type type, out object instance)
return exceptions; return exceptions;
} }


public static ExceptionList Dispose(object instance) public static void Dispose(object instance)
{ {
var exceptions = new ExceptionList(); var disposable = instance as IDisposable;

if (disposable != null)
try disposable.Dispose();
{
var disposable = instance as IDisposable;
if (disposable != null)
disposable.Dispose();
}
catch (Exception ex)
{
exceptions.Add(ex);
}

return exceptions;
} }
} }
} }

0 comments on commit c9d8abc

Please sign in to comment.