public void Constructor_SutIsCmdlet() { // When var sut = new NewPostCommand(); // Then Assert.IsAssignableFrom<Cmdlet>(sut); }
public void Invoke_DoesNotReturnNull() { // Given var sut = new NewPostCommand(); // When var result = sut.Invoke(); // Then Assert.NotNull(result); }
public void Invoke_WithContent_DelegatesToRepository( Mock<Common.IServiceLocator> serviceLocator, Mock<IRepository<Post>> repository, string title, string content) { // Given serviceLocator.Setup(s => s.GetInstance<IRepository<Post>>()).Returns(repository.Object); var sut = new NewPostCommand(); ServiceLocator.SetCurrentInstance(serviceLocator.Object); // When sut.Title = title; sut.Content = content; sut.Invoke<Post>().Any(); // Then repository.Verify(m => m.Save(It.Is<Post>(p => p.MarkdownContent == content))); }
public void Invoke_WithContent_ReturnsSinglePostWithSameContent( Mock<Common.IServiceLocator> serviceLocator, Mock<IRepository<Post>> repository, string title, string content) { // Given serviceLocator.Setup(s => s.GetInstance<IRepository<Post>>()).Returns(repository.Object); var sut = new NewPostCommand(); ServiceLocator.SetCurrentInstance(serviceLocator.Object); // When sut.Title = title; sut.Content = content; var result = sut.Invoke<Post>().SingleOrDefault(); // Then Assert.Equal(content, result.MarkdownContent); }
public void Invoke_WithTitle_ReturnsSinglePost( Mock<Common.IServiceLocator> serviceLocator, Mock<IRepository<Post>> repository, string title) { // Given serviceLocator.Setup(s => s.GetInstance<IRepository<Post>>()).Returns(repository.Object); var sut = new NewPostCommand(); ServiceLocator.SetCurrentInstance(serviceLocator.Object); // When sut.Title = title; var result = sut.Invoke<Post>().SingleOrDefault(); // Then Assert.NotNull(result); }
public void Invoke_WithTags_ReturnsSinglePostWithSameTags( Mock<Common.IServiceLocator> serviceLocator, Mock<IRepository<Post>> repository, string title, string[] tags) { // Given serviceLocator.Setup(s => s.GetInstance<IRepository<Post>>()).Returns(repository.Object); var sut = new NewPostCommand(); ServiceLocator.SetCurrentInstance(serviceLocator.Object); // When sut.Title = title; sut.Tags = tags; var result = sut.Invoke<Post>().SingleOrDefault(); // Then Assert.True(tags.SequenceEqual(result.Tags.Select(t => t.Name))); }
public void Invoke_WithNullTitle_ThrowsArgumentException( Mock<Common.IServiceLocator> serviceLocator, Mock<IRepository<Post>> repository) { // Given serviceLocator.Setup(s => s.GetInstance<IRepository<Post>>()).Returns(repository.Object); var sut = new NewPostCommand(); ServiceLocator.SetCurrentInstance(serviceLocator.Object); // When sut.Title = null; // Then Assert.Throws<ArgumentException>(() => sut.Invoke<Post>().Any()); }
public void Invoke_WithException_ThrowsSameException( Mock<Common.IServiceLocator> serviceLocator, Mock<IRepository<Post>> repository, InvalidOperationException exception, string title) { // Given serviceLocator.Setup(s => s.GetInstance<IRepository<Post>>()).Returns(repository.Object); repository.Setup(s => s.Save(It.IsAny<Post>())).Throws(exception); var sut = new NewPostCommand(); ServiceLocator.SetCurrentInstance(serviceLocator.Object); sut.Title = title; // Then Assert.Throws(exception.GetType(), () => sut.Invoke<Post>().Any()); }