public class MockAdaptee : IAdaptee {
public bool specificRequestCalled = false;
public void SpecificRequest() {
specificRequestCalled = true;
}
}
[TestFixture]
public class AdapterTests {
Adapter adapter;
MockAdaptee adaptee;
[SetUp]
public void SetUp() {
adaptee = new MockAdaptee();
AdapteeFactory.Instance.ReplaceAdaptee(typeof(IAdaptee), adaptee);
adapter = new Adapter();
}
[TearDown]
public void TearDown() {
AdapteeFactory.Instance.Reset();
}
[Test]
public void AdapterCallsAdapteeSpecificRequest() {
Assert.IsFalse(adaptee.specificRequestCalled, );
adapter.Request();
Assert.IsTrue(adaptee.specificRequestCalled, );
}
}
[TestFixture]
public class TargetTests {
Target target;
[SetUp]
public void SetUp() {
target = new Target();
}
[Test]
public void RequestPerformsExpectedAction() {
}
}
[TestFixture]
public class AdapteeTests {
Adaptee target;
[SetUp]
public void SetUp() {
target = new Adaptee();
}
[Test]
public void SpecificRequestPerformsExpectedAction() {
}
}
[TestFixture]
public class AdapteeFactoryTests {
IAdaptee adaptee = new MockAdaptee();
public AdapteeFactoryTests() { }
[SetUp]
public void SetUp() {
AdapteeFactory.Instance.Reset();
}
[Test]
public void RealAdapteeIsDefault() {
Assert.AreEqual(typeof(Adaptee), AdapteeFactory.Instance.Adaptee.GetType());
}
[Test]
public void AdapteeReplacedAndReturned() {
Assert.AreEqual(typeof(Adaptee), AdapteeFactory.Instance.Adaptee.GetType());
AdapteeFactory.Instance.ReplaceAdaptee(typeof(IAdaptee), new MockAdaptee());
Assert.AreEqual(typeof(MockAdaptee), AdapteeFactory.Instance.Adaptee.GetType());
AdapteeFactory.Instance.Reset();
Assert.AreEqual(typeof(Adaptee), AdapteeFactory.Instance.Adaptee.GetType());
}
}