public void TestCleanup()
        {
            var cleanup1 = new MockCleanup();
            var cleanup2 = new MockCleanup();
            var r        = new FirstWorkingReporter(cleanup1, new QuietReporter(), cleanup2);

            r.CleanUp("a", "r");
            Assert.AreEqual("a", cleanup1.approved);
            Assert.AreEqual("a", cleanup2.approved);
        }
        public void TestCallsFirstAndOnlyFirst()
        {
            var a = new RecordingReporter(false);
            var b = new RecordingReporter(true);
            var c = new RecordingReporter(true);

            var reporter = new FirstWorkingReporter(a, b, c);

            Assert.IsTrue(reporter.IsWorkingInThisEnvironment("default.txt"));
            reporter.Report("a", "b");
            Assert.IsNull(a.CalledWith);
            Assert.AreEqual("a,b", b.CalledWith);
            Assert.IsNull(c.CalledWith);
        }