static ObjectFactory() { //var assembler = SafeServiceLocator.Current.GetInstance<IAssembler>(); var declarationProvider = SafeServiceLocator.Current.GetInstance <IDeclarationProvider>(); var adviceComposer = new AdviceComposer(new PointcutEvaluator()); var adviceWeaver = SafeServiceLocator.Current.GetInstance <IAdviceWeaver>(); var intertypeWeaver = SafeServiceLocator.Current.GetInstance <IIntertypeWeaver>(); var eventMethodPreparer = SafeServiceLocator.Current.GetInstance <IEventMethodPreparer>(); var assembler = new Participant(declarationProvider, adviceComposer, adviceWeaver, intertypeWeaver, eventMethodPreparer); var typeModifier = SafeServiceLocator.Current.GetInstance <ITypeModifier>(); var typeAssembler = new TypeAssembler(new[] { assembler }, typeModifier); var constructorFinder = new ConstructorFinder(); var delegateFactory = new DelegateFactory(); var typeCache = new TypeCache(typeAssembler, constructorFinder, delegateFactory); s_objectFactory = new Remotion.TypePipe.ObjectFactory(typeCache); }
private TypeAssembler CreateTypeAssembler( IMutableTypeFactory mutableTypeFactory = null, IAssembledTypeIdentifierProvider assembledTypeIdentifierProvider = null, IComplexSerializationEnabler complexSerializationEnabler = null, string configurationId = "id", params IParticipant[] participants) { mutableTypeFactory = mutableTypeFactory ?? _mutableTypeFactoryMock.Object; // Do not fix up assembledTypeIdentifierProvider. complexSerializationEnabler = complexSerializationEnabler ?? _complexSerializationEnablerMock.Object; var typeAssembler = new TypeAssembler(configurationId, participants.AsOneTime(), mutableTypeFactory, complexSerializationEnabler); if (assembledTypeIdentifierProvider != null) { PrivateInvoke.SetNonPublicField(typeAssembler, "_assembledTypeIdentifierProvider", assembledTypeIdentifierProvider); } return(typeAssembler); }
public void Initialization() { var participantStub = new Mock <IParticipant>(); var participantWithCacheProviderStub = new Mock <IParticipant>(); var identifierProviderStub = new Mock <ITypeIdentifierProvider>(); participantWithCacheProviderStub.SetupGet(stub => stub.PartialTypeIdentifierProvider).Returns(identifierProviderStub.Object); var participants = new[] { participantStub.Object, participantWithCacheProviderStub.Object }; var typeAssembler = new TypeAssembler("configId", participants.AsOneTime(), _mutableTypeFactoryMock.Object, _complexSerializationEnablerMock.Object); Assert.That(typeAssembler.ParticipantConfigurationID, Is.EqualTo("configId")); Assert.That(typeAssembler.Participants, Is.EqualTo(participants)); var assembledTypeIdentifierProvider = PrivateInvoke.GetNonPublicField(typeAssembler, "_assembledTypeIdentifierProvider"); Assert.That(assembledTypeIdentifierProvider, Is.TypeOf <AssembledTypeIdentifierProvider>()); var identifierProviders = PrivateInvoke.GetNonPublicField(assembledTypeIdentifierProvider, "_identifierProviders"); Assert.That(identifierProviders, Is.EqualTo(new[] { identifierProviderStub.Object })); }