input: Write a function named `main` that takes a base path as its parameter, loads a JSON fixture file containing property data, extracts and processes the properties, creates Property objects from the data, and saves them to the database. The function should return the number of objects saved. The JSON fixture file should be specified using command line arguments. If the file is not specified, it defaults to 'properties.json' and the folder defaults to 'models/fixtures'. Include assert statements to test the function with various scenarios.
  
  assert main('/full/path') == 3  # Assuming 3 properties are in the JSON fixture
  assert main('/path/to/fixtures') == 0  # Assuming no properties in the JSON fixture
  assert main('/some/path') == 5  # Assuming 5 properties in the JSON fixture empty.json file with no properties
  assert main('/another/path') == 0  # Assuming empty.json file with no properties
output: def main(base_path):
      import os
      import json
      from models.property import Property
  
      default_folder = 'models/fixtures'
      default_file = 'properties.json'
      
      if base_path.endswith('/'):
          base_path = base_path[:-1]
      
      file_path = os.path.join(base_path, default_folder, default_file)
      
      if not os.path.exists(file_path):
          return 0
      
      with open(file_path, 'r') as file:
          data = json.load(file)
      
      properties = data.get('properties', [])
      count = 0
      
      for prop in properties:
          property_obj = Property(**prop)
          property_obj.save()
          count += 1
      
      return count