public void Account_not_found()
        {
            // Arrange
            var exception = new ResourceNotFoundException(ErrorCode.AccountNotFound);
            var builder = new Builder {AccountName = "acme"};

            // Act
            var result = builder.Build(exception) as AccountNotFoundException;

            // Assert
            result.ShouldNotBe(null);
            result.AccountName.ShouldBe("acme");
        }
        public void Workspace_metadata_not_found()
        {
            // Arrange
            var exception = new ResourceNotFoundException(ErrorCode.WorkspaceMetadataNotFound);
            var builder = new Builder
            {
                AccountName = "acme",
                Workspace = "master"
            };

            // Act
            var result = builder.Build(exception) as WorkspaceMetadataNotFoundException;

            // Assert
            result.ShouldNotBe(null);
            result.AccountName.ShouldBe("acme");
            result.Workspace.ShouldBe("master");
        }
        public void File_not_found()
        {
            // Arrange
            var exception = new ResourceNotFoundException(ErrorCode.FileNotFound);
            var builder = new Builder
            {
                AccountName = "acme",
                Workspace = "master",
                Path = "some.file"
            };

            // Act
            var result = builder.Build(exception) as FileNotFoundException;

            // Assert
            result.ShouldNotBe(null);
            result.AccountName.ShouldBe("acme");
            result.Workspace.ShouldBe("master");
            result.Path.ShouldBe("some.file");
        }
        public void Return_the_original_exception_when_error_is_unknown()
        {
            // Arrange
            var exception = new ResourceNotFoundException("random_error");
            var builder = new Builder();

            // Act
            var result = builder.Build(exception);

            // Assert
            result.ShouldBe(exception);
        }