public void TestLoggingLine_MockDispatcher()
        {
            var mock = new Mock <IMessageDispatcher>();

            RedisMessage msg = new RedisMessage("", "");

            codeHooks = new CodeHooks(mock.Object);

            mock.Setup(x => x.DispatchMessage(It.IsAny <RedisMessage>())).Callback((RedisMessage pmsg) => msg = pmsg);

            codeHooks.LogLineRun(System.Guid.NewGuid(), 95, "testDate");

            mock.Verify(x => x.DispatchMessage(It.IsAny <RedisMessage>()), Times.Once());

            string tid = Thread.CurrentThread.ManagedThreadId.ToString();

            Assert.IsTrue(msg.GetKey().Contains("CODE_RUN_EVENTS"));
            Assert.IsTrue(msg.GetMessage().Contains("95"));
            Assert.IsTrue(msg.GetMessage().Contains("testDate"));
            Assert.IsTrue(msg.GetMessage().Contains("LINE_EXEC"));
            Assert.IsTrue(msg.GetMessage().Contains(tid));
        }
        public void TestRegesteringProject()
        {
            SourceCodeInfo sourceCode = new SourceCodeInfo(GitTests.RepoPath);

            sourceCode.AddCodeFile("ClassA.cs");

            var          mock = new Mock <IMessageDispatcher>();
            RedisMessage msg  = new RedisMessage("", "");

            mock.Setup(x => x.DispatchMessage(It.IsAny <RedisMessage>())).Callback((RedisMessage pmsg) => msg = pmsg);
            var codeHooks = new CodeHooks(mock.Object);

            CodeRegisterer codeRegisterer = new CodeRegisterer(codeHooks);

            codeRegisterer.SendCodeContentsToServer(sourceCode);


            mock.Verify(x => x.DispatchMessage(It.IsAny <RedisMessage>()), Times.AtLeast(1));

            Assert.IsTrue(msg.GetKey().Contains("CODE_RUN_EVENTS"));
            Assert.IsTrue(msg.GetMessage().Contains("ADD_SOURCE_FILE"));
            Assert.IsTrue(msg.GetMessage().Contains("ClassA.cs"));
            Assert.IsTrue(msg.GetMessage().Contains("MethodA_1"));
        }