Exemple #1
0
 protected void SetUp()
 {
     mocks = new Mockery();
     mockUnderlyingRemoteReceiver   = mocks.NewMock <IRemoteReceiver>();
     mockApplicationLogger          = mocks.NewMock <IApplicationLogger>();
     testRemoteReceiverDecompressor = new RemoteReceiverDecompressor(mockUnderlyingRemoteReceiver, mockApplicationLogger);
 }
Exemple #2
0
 //------------------------------------------------------------------------------
 //
 // Method: RemoteReceiverDecompressor (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.RemoteReceiverDecompressor class.
 /// </summary>
 /// <param name="underlyingRemoteReceiver">The remote receiver to receive the message from before compressing.</param>
 /// <param name="decompressionBufferSize">The size of the buffer to use when decompressing the message in bytes.  Denotes how much data will be read from the internal stream decompressor class in each read operation.  Should be set to match the expected decompressed message size as closely as possible.</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 RemoteReceiverDecompressor(IRemoteReceiver underlyingRemoteReceiver, int decompressionBufferSize, IApplicationLogger logger, IMetricLogger metricLogger)
     : this(underlyingRemoteReceiver, decompressionBufferSize)
 {
     this.logger      = logger;
     loggingUtilities = new LoggingUtilities(logger);
     metricsUtilities = new MetricsUtilities(metricLogger);
 }
Exemple #3
0
 //------------------------------------------------------------------------------
 //
 // Method: RemoteReceiverDecompressor (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.RemoteReceiverDecompressor class.
 /// </summary>
 /// <param name="underlyingRemoteReceiver">The remote receiver to receive the message from before decompressing.</param>
 public RemoteReceiverDecompressor(IRemoteReceiver underlyingRemoteReceiver)
 {
     this.remoteReceiver          = underlyingRemoteReceiver;
     this.decompressionBufferSize = 1024;
     logger           = new ConsoleApplicationLogger(LogLevel.Information, '|', "  ");
     loggingUtilities = new LoggingUtilities(logger);
     metricsUtilities = new MetricsUtilities(new NullMetricLogger());
 }
 //------------------------------------------------------------------------------
 //
 // 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());
 }
Exemple #5
0
 //------------------------------------------------------------------------------
 //
 // Method: RemoteReceiverDecompressor (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.RemoteReceiverDecompressor class.
 /// </summary>
 /// <param name="underlyingRemoteReceiver">The remote receiver to receive the message from before compressing.</param>
 /// <param name="decompressionBufferSize">The size of the buffer to use when decompressing the message in bytes.  Denotes how much data will be read from the internal stream decompressor class in each read operation.  Should be set to match the expected decompressed message size as closely as possible.</param>
 public RemoteReceiverDecompressor(IRemoteReceiver underlyingRemoteReceiver, int decompressionBufferSize)
     : this(underlyingRemoteReceiver)
 {
     if (decompressionBufferSize < 1)
     {
         throw new ArgumentOutOfRangeException("decompressionBufferSize", "Argument 'decompressionBufferSize' must be greater than 0.");
     }
     this.decompressionBufferSize = decompressionBufferSize;
 }
        protected void SetUp()
        {
            mocks = new Mockery();
            mockUnderlyingRemoteReceiver   = mocks.NewMock <IRemoteReceiver>();
            testRemoteReceiverDecompressor = new RemoteReceiverDecompressor(mockUnderlyingRemoteReceiver);

            compressedString           = "H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Ih7/Hu8WZXqZ101RLT/7aHe881GaL6fVrFhefPbRuj3fPvjo9zh6/EXezqvZ2fKymmYttTSfvMgW+ZH8+t2inR+X5dOszd5cr/Lj5mVW07ctgX5812v92H3u/X702Lx4VCzb/CKvH9+1n/B3R7t79+Szo8d3vfdiIGZZm78pFvlxXWfXPUCPT8t8kS/bXvPHd7vfmKYR2D2wOzs7u9v8vzc7O4/4f2P6zOJsQb0HzIf0bO/ubd/bfbN379H9h/S/MX3Uh3lLwjRtTRPb6+YXlu3hm7xpX/PXv/CC/poXTUr/y9KWPk/lvRTt8O3vcffRR4cff/y97//iX/LJZ7//9p2tb/3CbLE6/P1+99/tx3/P3/Vnfl80uxvCuy2Cs3xaLLLythMnrW83b6ZtB+j2g4d7ewe7n+7d393f+3T/3r0H9x/eu79/7+H9nXv37t9q9gYgvyfgW1KoKS6W+ezJddvnloPbwphU1W1JjKa3oq807IA7z8pG8dxMw+jbbb2OvHzLMTbzqm7PBnTJ9u6n9/ZvrU6m86y+JbnQ9FbkkoYdcF/chlTRNyFyX5tUZbW8GKLUg0/v355Qs2o9KW+tdbnxrYhlmvZmcfzpwwefPry3e2//4NO9e3u790637+04MdgktHGQEYhRgLckyHlZZW0f77PlebEsWiXSLcHckqza5S2oOoDcvfHu/u79h3uf7hIxb0XLOCAD58HeaQzMLYc+ME/vS0GPxW9Jx0AobkHNTUK0TZaA9P/ezr1PD+7vP3hw/+B2TLoJZh/kg69N5KhK+V1v+7avaW9J3FA534K6m7X5vb0Hn96KoBvBAMrXp+HNFuwmMlrDflsiep7AbUg47DiQi3k78g2D2N37+qQbcqD2dx7eP/h05+H+/U/H9x4ePDzYf0D/d67TTQRl7/O2xFTP+DaEjDvRz6s6X6TFqlkv0llVVnXaFG0KrEbptFo2+bTN23WdZrNiVTRT+NN5WbTj9OU8a/KyXJPDvUyX67LM0kV2scxG6bJaptN13dBX0vQni8tsQX9d4k/pZZRmZfGL1jl1Nb7VHMaxf3y6WLXXeFV/ft25HApl9nZ2723v3Ed4tLv3aJ+imU/H5FvcFq5GhbecTRtD3mI6h+LN7b3d/Qf7B/c+3b+VbAyBsVA+WD5uOfbhoOiW3f1/RW6+ai3r/6J1trCvkfQ0DQWuxXJazNZL+jDF5NQz6mC1rlnO5M9xelJnzYeIzddG/sV6OU0vizbLVZhbVgEi8xbddb3MxulPrIuGhkkN58V0TeohW1/Qn/maRrqui40DuC2z+R+73ylF8wr4L92QB6X8rt/y7hfdjNH/A4VP6g5qEgAA";
            expectedUncompressedString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><MethodInvocation><MethodName>MethodWithAllDataTypeAsParameters</MethodName><Parameters><Parameter><DataType>integer</DataType><Data>123</Data></Parameter><Parameter><DataType>dateTimeArray</DataType><Data><ElementDataType>dateTime</ElementDataType><Element><DataType>dateTime</DataType><Data>0001-01-01T00:00:00.000</Data></Element><Element><DataType>dateTime</DataType><Data>9999-12-31T23:59:59.999</Data></Element></Data></Parameter><Parameter><DataType>string</DataType><Data>&lt;TestString&gt;This is a test string &lt;&gt;?/:\";''[]{}+=_-)(*&amp;^%$#@!|\\&lt;/TestString&gt;</Data></Parameter><Parameter><DataType>decimalArray</DataType><Data><ElementDataType>decimal</ElementDataType><Element><DataType>decimal</DataType><Data>-79228162514264337593543950335</Data></Element><Element><DataType>decimal</DataType><Data>79228162514264337593543950335</Data></Element></Data></Parameter><Parameter><DataType>signedByte</DataType><Data>8</Data></Parameter><Parameter><DataType>boolArray</DataType><Data><ElementDataType>bool</ElementDataType><Element><DataType>bool</DataType><Data>false</Data></Element><Element><DataType>bool</DataType><Data>true</Data></Element></Data></Parameter><Parameter><DataType>shortInteger</DataType><Data>-16343</Data></Parameter><Parameter><DataType>charArray</DataType><Data><ElementDataType>char</ElementDataType><Element><DataType>char</DataType><Data>M</Data></Element><Element><DataType>char</DataType><Data>&lt;</Data></Element></Data></Parameter><Parameter><DataType>longInteger</DataType><Data>76543</Data></Parameter><Parameter><DataType>doubleArray</DataType><Data><ElementDataType>double</ElementDataType><Element><DataType>double</DataType><Data>-1.6976931348623213E-308</Data></Element><Element><DataType>double</DataType><Data>1.6976931348623213E308</Data></Element></Data></Parameter><Parameter><DataType>float</DataType><Data>-Infinity</Data></Parameter><Parameter><DataType>floatArray</DataType><Data><ElementDataType>float</ElementDataType><Element><DataType>float</DataType><Data>-3.14159261E-38</Data></Element><Element><DataType>float</DataType><Data>3.14159272E38</Data></Element></Data></Parameter><Parameter><DataType>double</DataType><Data>Infinity</Data></Parameter><Parameter><DataType>longIntegerArray</DataType><Data><ElementDataType>longInteger</ElementDataType><Element><DataType>longInteger</DataType><Data>-9223372036854775808</Data></Element><Element><DataType>longInteger</DataType><Data>9223372036854775807</Data></Element></Data></Parameter><Parameter><DataType>char</DataType><Data>!</Data></Parameter><Parameter><DataType>shortIntegerArray</DataType><Data><ElementDataType>shortInteger</ElementDataType><Element><DataType>shortInteger</DataType><Data>-32768</Data></Element><Element><DataType>shortInteger</DataType><Data>32767</Data></Element></Data></Parameter><Parameter><DataType>bool</DataType><Data>true</Data></Parameter><Parameter><DataType>signedByteArray</DataType><Data><ElementDataType>signedByte</ElementDataType><Element><DataType>signedByte</DataType><Data>-128</Data></Element><Element><DataType>signedByte</DataType><Data>127</Data></Element></Data></Parameter><Parameter><DataType>decimal</DataType><Data>40958609456.39898479845</Data></Parameter><Parameter><DataType>stringArray</DataType><Data><ElementDataType>string</ElementDataType><Element><DataType>string</DataType><Data>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in nulla magna, non cursus elit. Vivamus velit dolor, aliquet a.</Data></Element><Element><DataType>string</DataType><Data><Empty></Empty></Data></Element></Data></Parameter><Parameter><DataType>dateTime</DataType><Data>2013-05-01T12:43:56.654</Data></Parameter><Parameter><DataType>integerArray</DataType><Data><ElementDataType>integer</ElementDataType><Element><DataType>integer</DataType><Data>-2147483648</Data></Element><Element><DataType>integer</DataType><Data>2147483647</Data></Element></Data></Parameter><Parameter><DataType>decimalArray</DataType><Data><ElementDataType>decimal</ElementDataType></Data></Parameter><Parameter><DataType>stringArray</DataType><Data><ElementDataType>string</ElementDataType><Element><DataType>string</DataType><Data>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut aliquet quam sit amet massa tincidunt a interdum purus interdum. Cras.</Data></Element><Element><DataType>string</DataType><Data>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vitae velit tellus, non interdum urna. Quisque vehicula augue eu mauris.</Data></Element><Element></Element></Data></Parameter><Parameter></Parameter></Parameters><ReturnType><DataType>dateTime</DataType></ReturnType></MethodInvocation>";
        }
 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>";
 }
        public void Initialize()
        {
            m_Television = new Television.Models.Television(MAX_CHANNELS);
            m_RemoteReceiver = new Television.Models.RemoteReceiver(m_Television);
            m_RemoteControl = new Television.Models.RemoteControl();
            m_RemoteControl.Program((result) =>
            {
                // Verify we are programmed
                Assert.IsTrue(result);
            });

            System.Threading.Thread.Yield();    // Allow the remote time to be programmed
        }
 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);
 }
 //------------------------------------------------------------------------------
 //
 // 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);
 }
Exemple #14
0
 //------------------------------------------------------------------------------
 //
 // Method: RemoteReceiverDecompressor (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.RemoteReceiverDecompressor class.
 /// </summary>
 /// <param name="underlyingRemoteReceiver">The remote receiver to receive the message from before decompressing.</param>
 /// <param name="metricLogger">The metric logger to write metric and instrumentation events to.</param>
 public RemoteReceiverDecompressor(IRemoteReceiver underlyingRemoteReceiver, IMetricLogger metricLogger)
     : this(underlyingRemoteReceiver)
 {
     metricsUtilities = new MetricsUtilities(metricLogger);
 }
Exemple #15
0
 //------------------------------------------------------------------------------
 //
 // Method: RemoteReceiverDecompressor (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.RemoteReceiverDecompressor class.
 /// </summary>
 /// <param name="underlyingRemoteReceiver">The remote receiver to receive the message from before decompressing.</param>
 /// <param name="logger">The logger to write log events to.</param>
 public RemoteReceiverDecompressor(IRemoteReceiver underlyingRemoteReceiver, IApplicationLogger logger)
     : this(underlyingRemoteReceiver)
 {
     this.logger      = logger;
     loggingUtilities = new LoggingUtilities(logger);
 }
Exemple #16
0
 //------------------------------------------------------------------------------
 //
 // Method: RemoteReceiverDecompressor (constructor)
 //
 //------------------------------------------------------------------------------
 /// <summary>
 /// Initialises a new instance of the MethodInvocationRemoting.RemoteReceiverDecompressor class.
 /// </summary>
 /// <param name="underlyingRemoteReceiver">The remote receiver to receive the message from before compressing.</param>
 /// <param name="decompressionBufferSize">The size of the buffer to use when decompressing the message in bytes.  Denotes how much data will be read from the internal stream decompressor class in each read operation.  Should be set to match the expected decompressed message size as closely as possible.</param>
 /// <param name="metricLogger">The metric logger to write metric and instrumentation events to.</param>
 public RemoteReceiverDecompressor(IRemoteReceiver underlyingRemoteReceiver, int decompressionBufferSize, IMetricLogger metricLogger)
     : this(underlyingRemoteReceiver, decompressionBufferSize)
 {
     metricsUtilities = new MetricsUtilities(metricLogger);
 }