public void CreatesCorrectFixtures(Type testClass, Type[] fixtureTypes, InterfaceFixtureSetFactory sut) { var result = sut.CreateFixturesFor(Reflector.Wrap(testClass)); Assert.IsType<FixtureSet>(result); var fixtureSet = (FixtureSet) result; Assert.That(fixtureSet.Fixtures, Matches.AllOf(fixtureTypes .Select(type => { var ifc = testClass.GetInterfaces().First(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IUseFixture<>) && x.GetGenericArguments()[0] == type); return Has.Entry(Is.EqualTo(ifc.GetMethod("SetFixture", new[] {type})), Is.InstanceOf(type)); }))); }
public void UnwrapsTargetInvocationIfThrown(InterfaceFixtureSetFactory sut) { var ex = Assert.Throws<Exception>(() => sut.CreateFixturesFor(Reflector.Wrap(typeof(AClassWithInvalidFixture)))); Assert.Equal("Invalid fixture", ex.Message); }
public void ThrowsWhenClassUsesItselfAsFixture(InterfaceFixtureSetFactory sut) { Assert.Throws<InvalidOperationException>(() => sut.CreateFixturesFor(Reflector.Wrap(typeof (AClassWithSelfAsFixture)))); }