public void TestLogServer()
        {
            // Arrange
            var endpoint     = "tcp://127.0.0.1:55010";
            var nsEndpoint   = "tcp://127.0.0.1:55020";
            var logList      = new List <string>();
            var mockLog      = new Mock <ILogger>();
            var loggerServer = new LoggerServer("Test Logger Server", endpoint, nsEndpoint, mockLog.Object);

            mockLog.Setup(l => l.WriteLine(It.IsAny <string>())).Callback((string msg) => {
                logList.Add(msg);
                loggerServer.Stop();
            });

            var task = Task.Run(() => loggerServer.StartAsync(endpoint));

            Thread.Sleep(300);

            var pushContext = new ZContext();
            var pushSocket  = new ZSocket(pushContext, ZSocketType.PUSH);

            pushSocket.Connect(endpoint);

            // Act
            pushSocket.Send(new ZFrame("This is a message."));

            task.Wait();
            // Assert
            Assert.AreEqual(1, logList.Count);
            Assert.AreEqual(1, logList.Count);
        }
예제 #2
0
        public void TestLogServerFromClient()
        {
            // Arrange
            var endpoint           = "tcp://127.0.0.1:55011";
            var nsEndpoint         = "tcp://127.0.0.1:55021";
            var msgPushSocket      = "This is a message from a PUSH zsocket.";
            var msgLogger          = "This is a test message from the LoggerClient.";
            var clientName         = "Test Client";
            var systemRegistration = new SystemRegistration(clientName, endpoint)
            {
                Id = 1
            };
            var logList      = new List <string>();
            var mockLog      = new Mock <ILogger>();
            var loggerServer = new LoggerServer("Test Logger Server", endpoint, nsEndpoint, mockLog.Object);

            mockLog.Setup(l => l.WriteLine(It.IsAny <string>())).Callback((string msg) => {
                logList.Add(msg);
                if (logList.Count > 1)
                {
                    loggerServer.Stop();
                }
            });

            var task = Task.Run(() => loggerServer.StartAsync(endpoint));

            Thread.Sleep(300);

            var pushContext = new ZContext();
            var pushSocket  = new ZSocket(pushContext, ZSocketType.PUSH);

            pushSocket.Connect(endpoint);

            var loggerClient = new LoggerClient(endpoint, clientName, nsEndpoint);
            var vts          = new VectorTimeStamp();

            vts.Update(systemRegistration.Id, DateTime.Now);

            // Act
            loggerClient.WriteLine(msgLogger, vts);
            Thread.Sleep(25);
            pushSocket.Send(new ZFrame(msgPushSocket));
            task.Wait();

            // Assert
            Assert.AreEqual(2, logList.Count);
            Assert.AreEqual($"{clientName}:{vts}: {msgLogger}", logList[0]);
            Assert.AreEqual(msgPushSocket, logList[1]);
        }