public void CreateLibraryCommandExecute_WhenSuccess_ReturnsCommandResultWithSuccess()
        {
            var message = new CreateLibraryMessage { Name = "Books" };
            var command = GetCommandWithSession(message);

            var result = command.Execute();

            Assert.That(result.IsSuccess(), Is.True);
        }
        public void CreateLibraryCommandExecute_Always_StoreAndSaveChanges()
        {
            var message = new CreateLibraryMessage{ Name = "Books" };
            var command = GetCommandWithSession(message);

            command.Execute();

            sessionMock.Verify(s => s.Store(It.Is<Library>(l => l.Name == "Books")));
            sessionMock.Verify(s => s.SaveChanges());
        }
        public void CreateLibraryCommandExecute_Always_SetsCurrentUserAsCreator()
        {
            var message = new CreateLibraryMessage{ Name = "Books" };
            var command = GetCommandWithSession(message);
            var currentUser = new User();
            command.FakeCurrentUser = currentUser;

            command.Execute();

            sessionMock.Verify(s => s.Store(It.Is<Library>(l => l.Creator == currentUser)));
        }