public async Task TestInitPartitionContract()
        {
            var serializer = new MyNoSqlTcpSerializer();


            var testContract = new InitPartitionContract
            {
                TableName    = "Test",
                PartitionKey = "PK",
                Data         = new byte[] { 1, 2, 3 }
            };

            var dataReader = new TcpDataReader(ReadBufferSize);

            var rawData = serializer.Serialize(testContract);
            await dataReader.NewPackageAsync(rawData);

            var result
                = (InitPartitionContract)await serializer
                  .DeserializeAsync(dataReader, CancellationToken.None);

            Assert.AreEqual(testContract.TableName, result.TableName);
            Assert.AreEqual(testContract.PartitionKey, result.PartitionKey);
            Assert.AreEqual(testContract.Data.Length, result.Data.Length);
            for (var i = 0; i < testContract.Data.Length; i++)
            {
                Assert.AreEqual(testContract.Data[i], result.Data[i]);
            }
        }
Example #2
0
        public static void BroadcastInitPartition(DbTable dbTable, DbPartition partition)
        {
            var connections = TableSubscribers.GetConnections(dbTable.Name);

            if (connections == null)
            {
                return;
            }

            var packetToBroadcast = new InitPartitionContract
            {
                TableName    = dbTable.Name,
                PartitionKey = partition.PartitionKey,
                Data         = partition.GetAllRows().ToHubUpdateContract()
            };

            foreach (var connection in connections)
            {
                connection.SendPacket(packetToBroadcast);
            }
        }
Example #3
0
        public void TestInitPartitionContract()
        {
            var serializer = new MyNoSqlTcpSerializer();


            var testContract = new InitPartitionContract
            {
                TableName    = "Test",
                PartitionKey = "PK",
                Data         = new byte[] { 1, 2, 3 }
            };

            var rawData = serializer.Serialize(testContract);

            var memStream = new MemoryStream(rawData.ToArray())
            {
                Position = 0
            };


            var dataReader = new TcpDataReader();

            dataReader.NewPackage(memStream.ToArray());


            var result
                = (InitPartitionContract)serializer
                  .DeserializeAsync(dataReader)
                  .AsTestResult();

            Assert.AreEqual(testContract.TableName, result.TableName);
            Assert.AreEqual(testContract.PartitionKey, result.PartitionKey);
            Assert.AreEqual(testContract.Data.Length, result.Data.Length);
            for (var i = 0; i < testContract.Data.Length; i++)
            {
                Assert.AreEqual(testContract.Data[i], result.Data[i]);
            }
        }