Example #1
0
        public void UnsubscribeOnLogOut_UserDoesNotExistNotPreviouslySubscribedToUserName_ReturnsFalse()
        {
            // Arrange

            var username = "******";

            UserLoggedOutHandle handle = new UserLoggedOutHandle((o, s) =>
            {
            });

            // Act and assert Assert

            Assert.That(_uut.UnsubscribeOnLogOut(username, handle), Is.EqualTo(false));
        }
Example #2
0
        public void SubscribeOnLogout_UserExistNotPreviouslySubscribed_ReturnsTrue()
        {
            // Arrange

            var username = "******";

            _fakeUserCache.Confirm(username).Returns(true);

            var handle = new UserLoggedOutHandle((o, s) =>
            {
            });

            // Act and assert

            Assert.That(_uut.SubscribeOnLogOut(username, handle), Is.EqualTo(true));
        }
        public bool SubscribeOnLogOut(string username, UserLoggedOutHandle handle)
        {
            if (!_userCache.Confirm(username))
            {
                return(false);
            }

            lock (_listeners)
            {
                if (!_listeners.ContainsKey(username))
                {
                    _listeners.Add(username, new HashSet <UserLoggedOutHandle>());
                }

                return(_listeners[username].Add(handle));
            }
        }
Example #4
0
        public void UnsubscribeOnLogOut_UserDoesExistNotPreviouslySubscribedToUserName_ReturnsFalse()
        {
            // Arrange

            var username = "******";

            _fakeUserCache.Confirm(Arg.Any <string>()).Returns(true);
            _uut.SubscribeOnLogOut(username, (o, s) => { }); // The user exists with a default handle

            var handle = new UserLoggedOutHandle((o, s) =>   // This handle is not subscribed
            {
            });

            // Act and assert Assert

            Assert.That(_uut.UnsubscribeOnLogOut(username, handle), Is.EqualTo(false));
        }
Example #5
0
        public void SubscribeOnLogout_UserDoesNotExist_ReturnsFalse()
        {
            // Arrange

            var username = "******";

            _fakeUserCache.Confirm(username).Returns(false);

            var handle = new UserLoggedOutHandle((o, s) =>
            {
            });

            // Act

            var subscribed = _uut.SubscribeOnLogOut(username, handle);

            // Assert
            Assert.That(!subscribed);
        }
        public bool UnsubscribeOnLogOut(string username, UserLoggedOutHandle handle)
        {
            lock (_listeners)
            {
                if (!_listeners.ContainsKey(username))
                {
                    return(false);
                }

                if (!_listeners[username].Remove(handle))
                {
                    return(false);
                }

                if (_listeners[username].Count == 0)
                {
                    _listeners.Remove(username);
                }

                return(true);
            }
        }