public void ShouldReadOperation()
        {
            var writer = new NetworkOperationWriter(_map, _serializer, _transport);

            var operation = new TestOperation {
                Data = "test_data"
            };

            writer.WriteOperation(operation);

            var reader        = new NetworkOperationReader(_map, _serializer);
            var readOperation = (TestOperation)reader.ReadOperation(_transport.SentOperations.Single().Item2);

            readOperation.Data.ShouldBe(operation.Data);
        }
        public void ShouldWriteOperation()
        {
            var writer = new NetworkOperationWriter(_map, new SerializationService(new BinarySerializer()), _transport);

            writer.WriteOperation(new TestOperation());

            var sentOperation = _transport.SentOperations.SingleOrDefault();

            sentOperation.ShouldNotBeNull();

            sentOperation.Item1.ShouldBe(OperationCode.HandleOperation);

            sentOperation.Item2.ShouldContainKeyAndValue((byte)OperationParameterCode.OperationId, _map.GetMappedOperation(typeof(TestOperation)).Id);
            sentOperation.Item2.ShouldContainKey((byte)OperationParameterCode.OperationData);
        }