static T Create <T>(Func <object, MockInvocationInterceptor, T> factoryFunc, ExpectationScope expectationScope) { var mock = new Mock(MockName <T> .GetUniqueInScope(expectationScope)); lock (factory) { return(factoryFunc(mock, new MockInvocationInterceptor(expectationScope))); } }
public void GetUniqueName() { var scope = new Scope(); Assert.AreEqual("object", MockName <object> .GetUniqueInScope(scope)); Assert.AreEqual("object2", MockName <object> .GetUniqueInScope(scope)); Assert.AreEqual("object3", MockName <object> .GetUniqueInScope(scope)); Assert.AreEqual("string", MockName <string> .GetUniqueInScope(scope)); Assert.AreEqual("string2", MockName <string> .GetUniqueInScope(scope)); Assert.AreEqual("string3", MockName <string> .GetUniqueInScope(scope)); Assert.AreEqual("iMyDelegate", MockName <IMyDelegate> .GetUniqueInScope(scope)); Assert.AreEqual("imyDelegate", MockName <IMYDelegate> .GetUniqueInScope(scope)); Assert.AreEqual("myInterface", MockName <IMyInterface> .GetUniqueInScope(scope)); Assert.AreEqual("myGenericInterfaceWithOneArg", MockName <IMyGenericInterfaceWithOneArg <string> > .GetUniqueInScope(scope)); Assert.AreEqual("myGenericInterfaceWithTwoArg", MockName <IMyGenericInterfaceWithTwoArg <string, int> > .GetUniqueInScope(scope)); }