25 using System.Reflection;
26 using System.Threading.Tasks;
30 using MonoTouch.UIKit;
33 using MonoTouch.Dialog;
35 using NUnit.Framework;
36 using NUnit.Framework.Internal;
37 using NUnit.Framework.Api;
39 namespace SiliconStudio.Paradox.UnitTesting.UI {
44 : base (testCase, runner)
46 Caption = testCase.Name;
47 Value =
"NotExecuted";
48 this.Tapped += async delegate {
49 if (!Runner.OpenWriter (Test.FullName))
52 var suite = (testCase.Parent as TestSuite);
53 var context = TestExecutionContext.CurrentContext;
54 context.TestObject = Reflect.Construct (testCase.Method.ReflectedType, null);
56 suite.GetOneTimeSetUpCommand ().Execute (context);
58 suite.GetOneTimeTearDownCommand ().Execute (context);
60 Runner.CloseWriter ();
62 if ((TestCase.RunState == RunState.Runnable) && !Result.IsSuccess ()) {
63 var root =
new RootElement (
"Results") {
69 runner.NavigationController.PushViewController (dvc,
true);
70 }
else if (GetContainerTableView () != null) {
71 var root = GetImmediateRootElement ();
72 root.Reload (
this, UITableViewRowAnimation.Fade);
77 public TestMethod TestCase {
78 get {
return Test as TestMethod; }
83 Update (await Runner.Run (TestCase));
88 if (Result.IsIgnored ()) {
89 Value = Result.GetMessage ();
90 DetailColor = UIColor.Orange;
91 }
else if (Result.IsSuccess () || Result.IsInconclusive ()) {
92 int counter = Result.AssertCount;
93 Value = String.Format (
"{0} {1} ms for {2} assertion{3}",
94 Result.IsInconclusive () ?
"Inconclusive." :
"Success!",
95 Result.Duration.TotalMilliseconds, counter,
96 counter == 1 ? String.Empty :
"s");
97 DetailColor = DarkGreen;
98 }
else if (Result.IsFailure ()) {
99 Value = Result.GetMessage ();
100 DetailColor = UIColor.Red;
103 Value = Result.GetMessage ();
TestCaseElement(TestMethod testCase, TouchRunner runner)