input: Write a python function to add, retrieve, and list customers in a CustomerDatabase class.
  assert isinstance(db := CustomerDatabase(), CustomerDatabase)
  assert db.get_all_customers() == []
  db.add_customer(type('Customer', (object,), {'id': 1, 'name': 'John Doe'})())
  assert db.get_customer(1).name == 'John Doe'
  assert len(db.get_all_customers()) == 1
  db.add_customer(type('Customer', (object,), {'id': 2, 'name': 'Jane Doe'})())
  assert db.get_customer(2).name == 'Jane Doe'
  assert len(db.get_all_customers()) == 2
output: class CustomerDatabase:
      def __init__(self):
          self.customers = {}
  
      def add_customer(self, customer):
          self.customers[customer.id] = customer
  
      def get_customer(self, customer_id):
          return self.customers.get(customer_id, None)
  
      def get_all_customers(self):
          return list(self.customers.values())