private static object DeserializeInstance(Func <IParticipant>[] participantProviders, byte[] serializedData) { // Register a factory for deserialization in current (new) app domain. Assert.That(PipelineRegistry.HasInstanceProvider, Is.False); var defaultPipelineMock = MockRepository.GenerateStrictMock <IPipeline>(); defaultPipelineMock.Stub(_ => _.ParticipantConfigurationID).Return("Mock Default Pipeline"); IPipelineRegistry pipelineRegistry = new DefaultPipelineRegistry(defaultPipelineMock); PipelineRegistry.SetInstanceProvider(() => pipelineRegistry); var participants = participantProviders.Select(pp => pp()).Concat(new[] { new ModifyingParticipant() }); // Avoid no-modification optimization. var pipeline = new DefaultPipelineFactory().Create(c_participantConfigurationID, participants.ToArray()); pipelineRegistry.Register(pipeline); try { return(Serializer.Deserialize(serializedData)); } finally { PipelineRegistryTestHelper.ResetPipelineRegistry(); } }
public void GetHasInstanceProvider() { Assert.That(PipelineRegistry.HasInstanceProvider, Is.False); PipelineRegistry.SetInstanceProvider(() => _registry); Assert.That(PipelineRegistry.HasInstanceProvider, Is.True); }
public override void SetUp() { base.SetUp(); // Use a dedicated pipeline to ensure that this test does not interfere with other tests. _savedPipeline = CreatePipeline(); PipelineRegistry.SetDefaultPipeline(_savedPipeline); }
public void GetInstance_InstanceProviderReturnedNull_ThrowsInvalidOperationException() { PipelineRegistry.SetInstanceProvider(() => null); Assert.That( () => PipelineRegistry.Instance, Throws.InvalidOperationException.With.Message.EqualTo( "The registered instance provider returned null. " + "Use PipelineRegistry.SetInstanceProvider (() => thePipelineRegistry) during application startup to initialize the TypePipe infrastructure.")); }
/// <summary> /// Initializes the <see cref="PipelineRegistry"/> with lookup based on the <see cref="SafeServiceLocator"/>. Call this method from within the /// static constructor of the TypePipe particpants. /// </summary> public static void InitializeWithServiceLocator() { // Note: It is still possible that a manual initialization is required in application code if mixin deserialization takes place // before TypeFactoryImplementation is requested. // Note: No Synchronization is required. Either the setup is already done during single-threaded application startup // or the operation is idem-potent within the PipelineRegistryInitializer. Race-conditions between this method and 3rd-party code // that does not support SafeServiceLocator cannot be handled from within the infrastructure code. if (!PipelineRegistry.HasInstanceProvider) { PipelineRegistry.SetInstanceProvider(() => SafeServiceLocator.Current.GetInstance <IPipelineRegistry>()); } }
public void SetUp() { var serializableType = ReflectionObjectMother.GetSomeSerializableType(); var formatterConverter = new FormatterConverter(); _info = new SerializationInfo(serializableType, formatterConverter); _context = new StreamingContext((StreamingContextStates)7); _pipelineRegistryStub = MockRepository.GenerateStub <IPipelineRegistry>(); Assert.That(PipelineRegistry.HasInstanceProvider, Is.False); PipelineRegistry.SetInstanceProvider(() => _pipelineRegistryStub); _deserializationMethodInvokerMock = MockRepository.GenerateMock <IDeserializationMethodInvoker>(); _createRealObjectAssertions = (instance, info, ctx, typeName) => { throw new Exception("Setup assertions and return real object."); }; // Use testable class instead of partial mock, because RhinoMocks chokes on non-virtual ISerializable.GetObjectData. _objectDeserializationProxyBase = new TestableObjectDeserializationProxyBase( _info, _context, (instance, info, ctx, typeName) => _createRealObjectAssertions(instance, info, ctx, typeName)); PrivateInvoke.SetNonPublicField(_objectDeserializationProxyBase, "_deserializationMethodInvoker", _deserializationMethodInvokerMock); }
public void SetInstanceProvider_GetInstance() { PipelineRegistry.SetInstanceProvider(() => _registry); Assert.That(PipelineRegistry.Instance, Is.SameAs(_registry)); }
public virtual void TearDown() { PipelineRegistry.SetDefaultPipeline(_previousDefaultPipeline); }
public virtual void SetUp() { _previousDefaultPipeline = PipelineRegistry.DefaultPipeline; PipelineRegistry.SetDefaultPipeline(Pipeline); }