public void UserNameIsUniqueIdentifierOfSpecifiedUser()
        {
            var user = new User {
                UniqueId = Guid.NewGuid(),
                Login    = new Login {
                    Value = "MyLogin"
                }
            };
            var actual = new VoterIdentity(user);

            Assert.That(actual.UserName, Is.EqualTo(user.UniqueId.ToString()));
        }
            public void WhenIdentityIsSetInNancyContext_ReturnsUserFromIdentity()
            {
                var user     = new User();
                var identity = new VoterIdentity(user);

                _nancyContext.CurrentUser = identity;

                var actual = _sut.GetAuthenticatedUser();

                Assert.That(actual, Is.Not.Null);
                Assert.That(actual, Is.EqualTo(user));
            }
            public void SetsUserInNancyContext()
            {
                var user     = new User();
                var identity = new VoterIdentity(user);

                ConfigureVoterIdentityFactory_ToReturn(user, identity);

                _sut.SetAuthenticatedUser(user);
                var actual = _nancyContext.CurrentUser;

                Assert.That(actual, Is.Not.Null);
                Assert.That(actual, Is.EqualTo(identity));
            }
        public void AssignsCreatedIdentityFromUserInSession()
        {
            var session  = A.Fake <ISession>();
            var user     = new User();
            var identity = new VoterIdentity(user);

            ConfigureSessionFromContextResolver_ToReturn(session);
            ConfigureUserFromSessionResolver_ToReturn(session, user);
            ConfigureVoterIdentityFactory_ToReturn(user, identity);

            _sut.AssignNancyIdentityFromContext(_context);

            Assert.That(_context.CurrentUser, Is.Not.Null);
            Assert.That(_context.CurrentUser, Is.EqualTo(identity));
            A.CallTo(() => _nancySessionFromNancyContextResolver.ResolveSession(_context))
            .MustHaveHappened();
            A.CallTo(() => _userFromSessionResolver.ResolveUser(session))
            .MustHaveHappened();
            A.CallTo(() => _voterIdentityFactory.Create(user))
            .MustHaveHappened();
        }
 void ConfigureVoterIdentityFactory_ToReturn(User user, VoterIdentity identity)
 {
     A.CallTo(() => _voterIdentityFactory.Create(user))
     .Returns(identity);
 }