public async Task TestUpdateRowsContract() { var serializer = new MyNoSqlTcpSerializer(); var testContract = new UpdateRowsContract { TableName = "Test", Data = new byte[] { 1, 2, 3 } }; var dataReader = new TcpDataReader(ReadBufferSize); var rawData = serializer.Serialize(testContract); await dataReader.NewPackageAsync(rawData); var result = (UpdateRowsContract)await serializer .DeserializeAsync(dataReader, CancellationToken.None); Assert.AreEqual(testContract.TableName, result.TableName); 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]); } }
public static void BroadcastRowsUpdate(DbTable dbTable, IReadOnlyList <DbRow> entities) { var connections = TableSubscribers.GetConnections(dbTable.Name); if (connections == null) { return; } var packetToBroadcast = new UpdateRowsContract { TableName = dbTable.Name, Data = entities.ToHubUpdateContract() }; foreach (var connection in connections) { connection.SendPacket(packetToBroadcast); } }
public void TestUpdateRowsContract() { var serializer = new MyNoSqlTcpSerializer(); var testContract = new UpdateRowsContract { TableName = "Test", 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 = (UpdateRowsContract)serializer .DeserializeAsync(dataReader) .AsTestResult(); Assert.AreEqual(testContract.TableName, result.TableName); 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]); } }