public void MumbleLinkStateChanged()
        {
            MumbleLinkManager manager = new MumbleLinkManager();

            manager.TimeoutRate = 0.1;
            MumbleLinkState?actualState  = null;
            string          actualName   = null;
            string          expectedName = "Super Adventure Wars FTW";

            manager.MumbleLinkStateChanged += (s, e) =>
            {
                actualState = e.State;
                actualName  = e.Name;
            };

            IMumbleLinkConnector connector = Substitute.For <IMumbleLinkConnector>();
            LinkedMem            linkedMem = new LinkedMem()
            {
                uiTick = 1
            };

            unsafe { PointerUtils.CopyArrayToPointer(expectedName.ToCharArray(), linkedMem.name); }
            connector.ReadMemoryMappedFile().Returns(linkedMem);
            manager.UseMumbleLinkConnector(connector);

            manager.Check();
            Assert.IsTrue(manager.IsActive, "Active");
            Assert.AreEqual(expectedName, actualName, "Name");
            actualState = null;
            actualName  = null;
            Thread.Sleep((int)(manager.TimeoutRate * 1000));
            manager.Check();
            Assert.IsFalse(manager.IsActive, "Not active after");
        }
        public void IsActive()
        {
            MumbleLinkManager manager = new MumbleLinkManager();

            IMumbleLinkConnector connector = Substitute.For <IMumbleLinkConnector>();
            LinkedMem            linkedMem = new LinkedMem()
            {
                uiTick = 1
            };

            connector.ReadMemoryMappedFile().Returns(linkedMem);
            manager.UseMumbleLinkConnector(connector);

            Assert.IsFalse(manager.IsActive, "Not active before");
            manager.Check();
            Assert.IsTrue(manager.IsActive, "Active after");
        }
        public void UpdateMumbleLinkFile()
        {
            MumbleLinkManager    manager   = new MumbleLinkManager();
            IMumbleLinkConnector connector = Substitute.For <IMumbleLinkConnector>();
            IMumbleLinkFile      file      = Substitute.For <IMumbleLinkFile>();

            LinkedMem linkedMem = new LinkedMem()
            {
                uiTick = 1
            };

            connector.ReadMemoryMappedFile().Returns(linkedMem);
            manager.UseMumbleLinkConnector(connector);
            manager.UseMumbleLinkFile(file);

            manager.Check();
            file.Received(1).SetDataFromLinkedMem(linkedMem);
        }
Beispiel #4
0
 public void UseMumbleLinkConnector(IMumbleLinkConnector mumbleLinkConnector)
 {
     this.MumbleLinkConnector = mumbleLinkConnector;
 }