public void TestOffset() { var ev = new ManualResetEvent(false); var connection = new Mock <IConnection>(); connection.Setup(c => c.SendAsync(It.IsAny <int>(), It.IsAny <ReusableMemoryStream>(), It.IsAny <bool>())) .Returns(Success) .Callback(() => ev.Set()); connection.Setup(c => c.ConnectAsync()).Returns(Success); var serializer = new Mock <Node.ISerialization>(); var node = new Node("Node", () => connection.Object, serializer.Object, new Configuration { TaskScheduler = new CurrentThreadTaskScheduler(), ConsumeBatchSize = 1 }, 1); var message = new OffsetMessage { Topic = "balbuzzard", Partition = 1, MaxNumberOfOffsets = 1, Time = 12341 }; node.Offset(message); ev.WaitOne(); serializer.Verify( s => s.SerializeOffsetBatch(It.IsAny <int>(), It.IsAny <IEnumerable <IGrouping <string, OffsetMessage> > >()), Times.Once()); serializer.Verify( s => s.SerializeOffsetBatch(It.IsAny <int>(), It.Is <IEnumerable <IGrouping <string, OffsetMessage> > >( msgs => msgs.Count() == 1 && msgs.First().Key == message.Topic && msgs.First().First().Equals(message)))); connection.Verify(c => c.SendAsync(It.IsAny <int>(), It.IsAny <ReusableMemoryStream>(), It.IsAny <bool>()), Times.Once()); }
private void bNudgeDown_Click(object sender, System.EventArgs e) { TheBox.BoxServer.OffsetMessage msg = new OffsetMessage(); msg.ZOffset = -(int)numNudge.Value; Pandora.BoxConnection.SendToServer(msg); }
private void bNudgeUp_Click(object sender, EventArgs e) { var msg = new OffsetMessage(); msg.ZOffset = (int)numNudge.Value; Pandora.BoxConnection.SendToServer(msg); }
private void dMover_OnDecoMove(int xOffset, int yOffset) { TheBox.BoxServer.OffsetMessage msg = new OffsetMessage(); msg.XOffset = xOffset; msg.YOffset = yOffset; Pandora.BoxConnection.SendToServer(msg); }
public void TestOffsetTimeout() { // Prepare var serializer = new Mock <Node.ISerialization>(); var connection = new Mock <IConnection>(); var node = new Node("Node", () => connection.Object, serializer.Object, new Configuration { TaskScheduler = new CurrentThreadTaskScheduler(), ConsumeBatchSize = 1, ClientRequestTimeoutMs = 2 }, new TimeoutScheduler(3), 1); var ev = new ManualResetEvent(false); connection.Setup(c => c.SendAsync(It.IsAny <int>(), It.IsAny <ReusableMemoryStream>(), It.IsAny <bool>())) .Returns(Success); connection.Setup(c => c.ConnectAsync()).Returns(Success); var message = new OffsetMessage { Topic = "balbuzzard", Partition = 1, MaxNumberOfOffsets = 1, Time = 12341 }; node.Offset(message); var acknowledgement = new CommonAcknowledgement <CommonResponse <OffsetPartitionResponse> >(); node.OffsetAcknowledgement += (n, ack) => { acknowledgement = ack; Assert.AreSame(node, n); ev.Set(); }; var exception = new Exception(); node.ConnectionError += (n, e) => { exception = e; }; node.Offset(message); ev.WaitOne(); // Checks Assert.IsInstanceOf <TimeoutException>(exception); Assert.AreNotEqual(default(DateTime), acknowledgement.ReceivedDate); Assert.AreEqual(1, acknowledgement.Response.TopicsResponse.Length); Assert.AreEqual("balbuzzard", acknowledgement.Response.TopicsResponse[0].TopicName); Assert.AreEqual(1, acknowledgement.Response.TopicsResponse[0].PartitionsData.Count()); var fetch = acknowledgement.Response.TopicsResponse[0].PartitionsData.First(); Assert.AreEqual(ErrorCode.LocalError, fetch.ErrorCode); Assert.AreEqual(1, fetch.Partition); Assert.AreEqual(0, fetch.Offsets.Length); }
public bool Offset(OffsetMessage message) { throw new NotImplementedException(); }
public void TestOffsetWithDecodeError() { // Prepare var serializer = new Mock <Node.ISerialization>(); var connection = new Mock <IConnection>(); var node = new Node("Node", () => connection.Object, serializer.Object, new Configuration { TaskScheduler = new CurrentThreadTaskScheduler(), ConsumeBatchSize = 1 }, 1); var ev = new ManualResetEvent(false); var corrs = new Queue <int>(); connection.Setup(c => c.SendAsync(It.IsAny <int>(), It.IsAny <ReusableMemoryStream>(), It.IsAny <bool>())) .Returns((int c, ReusableMemoryStream d, bool a) => { corrs.Enqueue(c); return(Success); }) .Callback(() => ev.Set()); connection.Setup(c => c.ConnectAsync()).Returns(Success); var message = new OffsetMessage { Topic = "balbuzzard", Partition = 1, MaxNumberOfOffsets = 1, Time = 12341 }; node.Offset(message); ev.WaitOne(); Assert.AreEqual(1, corrs.Count); int corr = corrs.Dequeue(); node.ResponseReceived += (n, l) => { Assert.AreSame(node, n); }; var acknowledgement = new CommonAcknowledgement <CommonResponse <OffsetPartitionResponse> >(); node.OffsetAcknowledgement += (n, ack) => { acknowledgement = ack; Assert.AreSame(node, n); }; int decodeError = 0; node.DecodeError += (n, e) => ++ decodeError; serializer.Setup(s => s.DeserializeCommonResponse <OffsetPartitionResponse>(corr, It.IsAny <ReusableMemoryStream>(), It.IsAny <Basics.ApiVersion>())) .Throws(new Exception()); // Now send a response connection.Raise(c => c.Response += null, connection.Object, corr, new ReusableMemoryStream(null)); // Checks Assert.AreEqual(1, decodeError); Assert.AreNotEqual(default(DateTime), acknowledgement.ReceivedDate); Assert.AreEqual(1, acknowledgement.Response.TopicsResponse.Length); Assert.AreEqual("balbuzzard", acknowledgement.Response.TopicsResponse[0].TopicName); Assert.AreEqual(1, acknowledgement.Response.TopicsResponse[0].PartitionsData.Count()); var fetch = acknowledgement.Response.TopicsResponse[0].PartitionsData.First(); Assert.AreEqual(ErrorCode.LocalError, fetch.ErrorCode); Assert.AreEqual(1, fetch.Partition); Assert.AreEqual(0, fetch.Offsets.Length); }
// Stores a OffsetMessage in the fsuipc Offset List. public void AddOffset(OffsetMessage o) { string offsetvalue = ""; try { if (o.offset > 0) { offsetvalue = o.offset.ToString(); } else { // invalid offset } } catch (Exception ex) { // invalid offset } string offsetname = o.offsetname.IsNullOrEmpty() ? o.offset.ToString() : o.offsetname; string panelname = o.panel.IsNullOrEmpty() ? "GLOBAL" : o.panel; string convert = o.convert.IsNullOrEmpty() ? "" : o.convert; // creates the right Offset Object and stores it in fuipcoffsets with key offset Object ob = new Object(); switch (o.type.ToLower()) { case "int": fuipcoffsets.Add(offsetvalue, new OffsetItem("int", convert, new Offset <int>(o.offset))); break; case "byte": fuipcoffsets.Add(offsetvalue, new OffsetItem("byte", convert, new Offset <byte>(o.offset))); break; case "bitarray": fuipcoffsets.Add(offsetvalue, new OffsetItem("bitarray", convert, new Offset <System.Collections.BitArray>(o.offset, 2))); break; case "double": fuipcoffsets.Add(offsetvalue, new OffsetItem("double", convert, new Offset <double>(o.offset))); break; case "long": fuipcoffsets.Add(offsetvalue, new OffsetItem("long", convert, new Offset <long>(o.offset))); break; case "short": fuipcoffsets.Add(offsetvalue, new OffsetItem("short", convert, new Offset <short>(o.offset))); break; } // Stores name of the offset as key and panelname fuipcpanels.Add(offsetname, panelname); // stores offsetname as key and offsetvalue to lookup in fuipcoffsets fuipcoffsetnames.Add(offsetname, offsetvalue); }