input: Write a function to parse the given URL and print out the protocol, domain name, and path using Python. If the URL is provided, use urllib.parse.urlparse to extract these components and return them in a dictionary with keys 'Protocol', 'Domain name', and 'Path'. If the URL is empty or None, return the message "No URL provided".
  
  
  def parse_url(url):
      if url:
          import urllib.parse
          parsed_url = urllib.parse.urlparse(url)
          return {
              'Protocol': parsed_url.scheme,
              'Domain name': parsed_url.netloc,
              'Path': parsed_url.path
          }
      else:
          return "No URL provided"
  
  # Test cases
  assert parse_url('https://www.example.com/path/to/file') == {
      'Protocol': 'https',
      'Domain name': 'www.example.com',
      'Path': '/path/to/file'
  }
  
  assert parse_url('http://test.com/folder/doc') == {
      'Protocol': 'http',
      'Domain name': 'test.com',
      'Path': '/folder/doc'
  }
  
  assert parse_url('') == "No URL provided"
  assert parse_url(None) == "No URL provided"
  
output: def parse_url(url):
      if url:
          import urllib.parse
          parsed_url = urllib.parse.urlparse(url)
          return {
              'Protocol': parsed_url.scheme,
              'Domain name': parsed_url.netloc,
              'Path': parsed_url.path
          }
      else:
          return "No URL provided"