test_class.declarator: testee
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private ClientRepository testee;
test_class.type: ClientRepository
test_class.var_name: testee
test_class.file: spring-ddd/spring-ddd-bank/src/test/java/de/beuth/knabe/spring_ddd_bank/infrastructure/ClientJpaRepositoryTest.java
test_class.identifier: ClientJpaRepositoryTest
test_case.body: @Test
      public void idsAreUniqueAndAscending(){
          final Client jack = new Client("jack", LocalDate.parse("1966-12-31"));
          final Client chloe = new Client("chloe", LocalDate.parse("1977-01-01"));       
          assertNull(jack.getId());
          assertNull(chloe.getId());
          
          //save() sets a unique ID when saving an object the first time:
          testee.save(jack);       
          final Long jackId = jack.getId();
          assertNotNull(jackId);
          testee.save(chloe);
          final Long chloeId = chloe.getId();
          assertNotNull(chloeId);
          assertThat(chloeId, greaterThan(jackId));
  
          //Modify and save again, ID must stay the same: 
          testee.save(chloe);
          assertEquals(chloeId, chloe.getId());
      }
test_case.class_method_signature: ClientJpaRepositoryTest.idsAreUniqueAndAscending()
test_case.full_signature: @Test public void idsAreUniqueAndAscending()
test_case.identifier: idsAreUniqueAndAscending
test_case.invocations: parse parse assertNull getId assertNull getId save getId assertNotNull save getId assertNotNull assertThat greaterThan save assertEquals getId
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void idsAreUniqueAndAscending()
focal_class.declarator: impl
focal_class.modifier: private final
focal_class.original_string: private final ImportedClientJpaRepository impl;
focal_class.type: ImportedClientJpaRepository
focal_class.var_name: impl
focal_class.file: spring-ddd/spring-ddd-bank/src/main/java/de/beuth/knabe/spring_ddd_bank/infrastructure/ClientJpaRepository.java
focal_class.identifier: ClientJpaRepository
focal_class.interfaces: implements ClientRepository
focal_class.class_method_signature: ClientJpaRepository.ClientJpaRepository(final ImportedClientJpaRepository impl)
focal_class.full_signature: @Autowired public  ClientJpaRepository(final ImportedClientJpaRepository impl)
focal_class.identifier: ClientJpaRepository
focal_class.modifiers: @Autowired public
focal_class.parameters: (final ImportedClientJpaRepository impl)
focal_class.signature:  ClientJpaRepository(final ImportedClientJpaRepository impl)
focal_class.class_method_signature: ClientJpaRepository.deleteAll()
focal_class.full_signature: public void deleteAll()
focal_class.identifier: deleteAll
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void deleteAll()
focal_class.class_method_signature: ClientJpaRepository.save(final Client client)
focal_class.full_signature: public Client save(final Client client)
focal_class.identifier: save
focal_class.modifiers: public
focal_class.parameters: (final Client client)
focal_class.return: Client
focal_class.signature: Client save(final Client client)
focal_class.class_method_signature: ClientJpaRepository.delete(Client client)
focal_class.full_signature: public void delete(Client client)
focal_class.identifier: delete
focal_class.modifiers: public
focal_class.parameters: (Client client)
focal_class.return: void
focal_class.signature: void delete(Client client)
focal_class.class_method_signature: ClientJpaRepository.find(Long id)
focal_class.full_signature: @Override public Optional<Client> find(Long id)
focal_class.identifier: find
focal_class.modifiers: @Override public
focal_class.parameters: (Long id)
focal_class.return: Optional<Client>
focal_class.signature: Optional<Client> find(Long id)
focal_class.class_method_signature: ClientJpaRepository.find(String username)
focal_class.full_signature: @Override public Optional<Client> find(String username)
focal_class.identifier: find
focal_class.modifiers: @Override public
focal_class.parameters: (String username)
focal_class.return: Optional<Client>
focal_class.signature: Optional<Client> find(String username)
focal_class.class_method_signature: ClientJpaRepository.findAll()
focal_class.full_signature: public List<Client> findAll()
focal_class.identifier: findAll
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<Client>
focal_class.signature: List<Client> findAll()
focal_class.class_method_signature: ClientJpaRepository.findAllBornFrom(final LocalDate minDate)
focal_class.full_signature: public List<Client> findAllBornFrom(final LocalDate minDate)
focal_class.identifier: findAllBornFrom
focal_class.modifiers: public
focal_class.parameters: (final LocalDate minDate)
focal_class.return: List<Client>
focal_class.signature: List<Client> findAllBornFrom(final LocalDate minDate)
focal_method.body: public Client save(final Client client){
          return impl.save(client);
      }
focal_method.class_method_signature: ClientJpaRepository.save(final Client client)
focal_method.full_signature: public Client save(final Client client)
focal_method.identifier: save
focal_method.invocations: save
focal_method.modifiers: public
focal_method.parameters: (final Client client)
focal_method.return: Client
focal_method.signature: Client save(final Client client)