コード例 #1
0
        public void AddRoomsTest()
        {
            CampfireState target = CampfireState.Instance;

            target.SetNameAndToken("fred", "9876543210");
            target.AddRoom(1, "Room1", 12);
            target.AddRoom(101, "Room2", 0);

            List <Room> newRooms = new List <Room>();
            Room        rm;

            rm = new Room(3, "Room3");        // new room
            newRooms.Add(rm);

            rm = new Room(101, "Room2");        // duplicate
            newRooms.Add(rm);

            rm = new Room(1, "RoomOne");        // existing room, new name
            newRooms.Add(rm);

            target.AddRooms(newRooms);

            Assert.AreEqual(3, target.Rooms.Count);
            Assert.IsTrue(target.Rooms.Count(r => r.Id == 1 && r.Name == "RoomOne") == 1, "verify renamed room");
            Assert.IsTrue(target.Rooms.Count(r => r.Id == 3 && r.Name == "Room3") == 1, "verify new room");

            CampfireState newCampfireInfo = CampfireState_Accessor.Restore(BackingStorePath);

            Match(target, newCampfireInfo);
        }
コード例 #2
0
        public void SaveRestoreTest_RoomsOnly()
        {
            CampfireState target = CampfireState.Instance;

            target.AddRoom(1, "Room1", 12);
            target.AddRoom(101, "Room2", 0);

            Assert.AreEqual(0, target.Users.Count);
            Assert.AreEqual(2, target.Rooms.Count);

            CampfireState newCampfireInfo = CampfireState_Accessor.Restore(BackingStorePath);

            Match(target, newCampfireInfo);
        }
コード例 #3
0
        public void SaveRestoreTest_UsersOnly()
        {
            CampfireState target = CampfireState.Instance;

            target.AddUser(1, "Peter", "*****@*****.**", null);
            target.AddUser(2, "Jake", "*****@*****.**", "*****@*****.**");

            Assert.AreEqual(2, target.Users.Count);
            Assert.AreEqual(0, target.Rooms.Count);

            CampfireState newCampfireInfo = CampfireState_Accessor.Restore(BackingStorePath);

            Match(target, newCampfireInfo);
        }
コード例 #4
0
        public void SaveRestoreTest_NoUsersNoRooms()
        {
            CampfireState     target   = CampfireState.Instance;
            SmokeSignalConfig sstarget = SmokeSignalConfig.Instance;

            sstarget.SetAndSaveNameAndToken("fred", "9876543210");
            target.SetNameAndToken("fred", "9876543210");

            Assert.AreEqual(0, target.Users.Count);
            Assert.AreEqual(0, target.Rooms.Count);

            CampfireState newCampfireInfo = CampfireState_Accessor.Restore(BackingStorePath);

            Match(target, newCampfireInfo);
        }
コード例 #5
0
        public void UpdateLastMessageIdTest()
        {
            CampfireState target = CampfireState.Instance;

            target.SetNameAndToken("fred", "9876543210");
            target.AddRoom(1, "Room1", 12);
            target.AddRoom(101, "Room2", 0);

            target.UpdateLastMessageId(101, 1234);

            CampfireState.RoomInfo room = target.Rooms.First(r => r.Id == 101);
            Assert.AreEqual(1234, room.LastMessageId);

            CampfireState newCampfireInfo = CampfireState_Accessor.Restore(BackingStorePath);

            room = newCampfireInfo.Rooms.First(r => r.Id == 101);
            Assert.AreEqual(1234, room.LastMessageId);
        }
コード例 #6
0
        public void AddPendingNotification_EarlierTimeTest()
        {
            CampfireState_Accessor target = new CampfireState_Accessor();
            int      userId      = 11;
            int      roomId      = 51;
            DateTime triggerTime = DateTime.Now.AddHours(1);

            CampfireState.UserReference ri = new CampfireState.UserReference("", new CampfireState.UserInfo(userId, "Fake User", "*****@*****.**", ""));
            ri.Room = new CampfireState.RoomInfo("fake room", roomId, 0);

            target.AddPendingNotification(ri, triggerTime);
            Assert.AreEqual(1, target.PendingNotifications.Count);
            Assert.AreEqual(triggerTime, target.PendingNotifications[0].TriggerTime);
            DateTime earlierTrigger = triggerTime.AddMinutes(-1);

            // Trying to add a notification for a same user/room, but with a earlier time will cause the pending trigger time to adjust
            target.AddPendingNotification(ri, earlierTrigger);
            Assert.AreEqual(1, target.PendingNotifications.Count);
            Assert.AreEqual(earlierTrigger, target.PendingNotifications[0].TriggerTime);
        }
コード例 #7
0
        public void SaveRestoreTest_UsersOnly_WithDelay()
        {
            CampfireState target = CampfireState.Instance;

            target.AddUser(2, "Jake", "*****@*****.**", "*****@*****.**");

            Assert.AreEqual(1, target.Users.Count);
            Assert.AreEqual(0, target.Rooms.Count);

            target.UpdateUser(2, 4);
            CampfireState.UserInfo ui = target.Users.FirstOrDefault(u => u.Id == 2);
            Assert.AreEqual(4, ui.DelayInMinutes);

            target.AddUser(1, "Peter", "*****@*****.**", null);

            CampfireState newCampfireInfo = CampfireState_Accessor.Restore(BackingStorePath);

            Match(target, newCampfireInfo);

            ui = newCampfireInfo.Users.FirstOrDefault(u => u.Id == 2);
            Assert.AreEqual(4, ui.DelayInMinutes);
            ui = newCampfireInfo.Users.FirstOrDefault(u => u.Id == 1);
            Assert.AreEqual(-1, ui.DelayInMinutes);
        }
コード例 #8
0
        public void AddPendingNotification_EarlierTimeTest()
        {
            CampfireState_Accessor target = new CampfireState_Accessor();
            int userId = 11;
            int roomId = 51;
            DateTime triggerTime = DateTime.Now.AddHours(1);
            CampfireState.UserReference ri = new CampfireState.UserReference("", new CampfireState.UserInfo(userId, "Fake User", "*****@*****.**", ""));
            ri.Room = new CampfireState.RoomInfo("fake room", roomId, 0);

            target.AddPendingNotification(ri, triggerTime);
            Assert.AreEqual(1, target.PendingNotifications.Count);
            Assert.AreEqual(triggerTime, target.PendingNotifications[0].TriggerTime);
            DateTime earlierTrigger = triggerTime.AddMinutes(-1);

            // Trying to add a notification for a same user/room, but with a earlier time will cause the pending trigger time to adjust
            target.AddPendingNotification(ri, earlierTrigger);
            Assert.AreEqual(1, target.PendingNotifications.Count);
            Assert.AreEqual(earlierTrigger, target.PendingNotifications[0].TriggerTime);
        }