//------------------------------------------------------------------------------
 //
 // Method: MethodInvocationRemoteReceiver (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.MethodInvocationRemoteReceiver class.
 /// </summary>
 /// <param name="serializer">Object to use to deserialize method invocations.</param>
 /// <param name="sender">Object to use to send serialized method invocation return values.</param>
 /// <param name="receiver">Object to use to receive serialized method invocations.</param>
 /// <param name="logger">The logger to write log events to.</param>
 /// <param name="metricLogger">The metric logger to write metric and instrumentation events to.</param>
 public MethodInvocationRemoteReceiver(IMethodInvocationSerializer serializer, IRemoteSender sender, IRemoteReceiver receiver, IApplicationLogger logger, IMetricLogger metricLogger)
     : this(serializer, sender, receiver)
 {
     this.logger = logger;
     loggingUtilities = new LoggingUtilities(logger);
     metricsUtilities = new MetricsUtilities(metricLogger);
 }
 //------------------------------------------------------------------------------
 //
 // Method: MethodInvocationRemoteReceiver (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.MethodInvocationRemoteReceiver class.
 /// </summary>
 /// <param name="serializer">Object to use to deserialize method invocations.</param>
 /// <param name="sender">Object to use to send serialized method invocation return values.</param>
 /// <param name="receiver">Object to use to receive serialized method invocations.</param>
 public MethodInvocationRemoteReceiver(IMethodInvocationSerializer serializer, IRemoteSender sender, IRemoteReceiver receiver)
 {
     this.serializer = serializer;
     this.sender = sender;
     this.receiver = receiver;
     logger = new ConsoleApplicationLogger(LogLevel.Information, '|', "  ");
     loggingUtilities = new LoggingUtilities(logger);
     metricsUtilities = new MetricsUtilities(new NullMetricLogger());
 }
 protected void SetUp()
 {
     mocks = new Mockery();
     mockMethodInvocationSerializer = mocks.NewMock <IMethodInvocationSerializer>();
     mockRemoteSender                 = mocks.NewMock <IRemoteSender>();
     mockRemoteReceiver               = mocks.NewMock <IRemoteReceiver>();
     mockApplicationLogger            = mocks.NewMock <IApplicationLogger>();
     testMethodInvocationRemoteSender = new MethodInvocationRemoteSender(mockMethodInvocationSerializer, mockRemoteSender, mockRemoteReceiver, mockApplicationLogger);
     testMethodInvocation             = new MethodInvocation("TestMethod", typeof(string));
 }
 protected void SetUp()
 {
     mocks = new Mockery();
     mockMethodInvocationSerializer = mocks.NewMock <IMethodInvocationSerializer>();
     mockRemoteSender      = mocks.NewMock <IRemoteSender>();
     mockRemoteReceiver    = mocks.NewMock <IRemoteReceiver>();
     mockApplicationLogger = mocks.NewMock <IApplicationLogger>();
     testMethodInvocationRemoteReceiver = new MethodInvocationRemoteReceiver(mockMethodInvocationSerializer, mockRemoteSender, mockRemoteReceiver, mockApplicationLogger);
     testSerializedReturnValue          = "<?xml version=\"1.0\" encoding=\"utf-8\"?><ReturnValue><DataType>string</DataType><string>TestReturnValue</string></ReturnValue>";
     testVoidReturnValue            = "<?xml version=\"1.0\" encoding=\"utf-8\"?><ReturnType>void</ReturnType>";
     testSerializedMethodInvocation = "<?xml version=\"1.0\" encoding=\"utf-8\"?><MethodInvocation><MethodName>TestMethod</MethodName><Parameters><Parameter><DataType>string</DataType><string>ABC</string></Parameter><Parameter><DataType>integer</DataType><int>12345</int></Parameter><Parameter><DataType>boolean</DataType><boolean>true</boolean></Parameter></Parameters><ReturnType>string</ReturnType></MethodInvocation>";
 }
 protected void SetUp()
 {
     mocks = new Mockery();
     mockMethodInvocationSerializer = mocks.NewMock <IMethodInvocationSerializer>();
     mockRemoteSender   = mocks.NewMock <IRemoteSender>();
     mockRemoteReceiver = mocks.NewMock <IRemoteReceiver>();
     testMethodInvocationRemoteReceiver = new MethodInvocationRemoteReceiver(mockMethodInvocationSerializer, mockRemoteSender, mockRemoteReceiver);
     object[] testMethodInvocationParameters = new object[3];
     testMethodInvocationParameters[0] = "ABC";
     testMethodInvocationParameters[1] = 12345;
     testMethodInvocationParameters[2] = true;
     testMethodInvocation = new MethodInvocation("TestMethod", testMethodInvocationParameters, typeof(string));
 }
 //------------------------------------------------------------------------------
 //
 // Method: MethodInvocationRemoteSender (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.MethodInvocationRemoteSender class.
 /// </summary>
 /// <param name="serializer">Object to use to serialize method invocations.</param>
 /// <param name="sender">Object to use to send serialized method invocations.</param>
 /// <param name="receiver">Object to use to receive serialized method invocation return values.</param>
 /// <param name="metricLogger">The metric logger to write metric and instrumentation events to.</param>
 public MethodInvocationRemoteSender(IMethodInvocationSerializer serializer, IRemoteSender sender, IRemoteReceiver receiver, IMetricLogger metricLogger)
     : this(serializer, sender, receiver)
 {
     metricsUtilities = new MetricsUtilities(metricLogger);
 }
 //------------------------------------------------------------------------------
 //
 // Method: MethodInvocationRemoteSender (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.MethodInvocationRemoteSender class.
 /// </summary>
 /// <param name="serializer">Object to use to serialize method invocations.</param>
 /// <param name="sender">Object to use to send serialized method invocations.</param>
 /// <param name="receiver">Object to use to receive serialized method invocation return values.</param>
 /// <param name="logger">The logger to write log events to.</param>
 public MethodInvocationRemoteSender(IMethodInvocationSerializer serializer, IRemoteSender sender, IRemoteReceiver receiver, IApplicationLogger logger)
     : this(serializer, sender, receiver)
 {
     loggingUtilities = new LoggingUtilities(logger);
 }