test_class.declarator: testee
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private AccountRepository testee;
test_class.type: AccountRepository
test_class.var_name: testee
test_class.file: spring-ddd/spring-ddd-bank/src/test/java/de/beuth/knabe/spring_ddd_bank/infrastructure/AccountJpaRepositoryTest.java
test_class.identifier: AccountJpaRepositoryTest
test_case.body: @Test
      public void saveCreatesAscendingAccountNumbers(){    
          final Account jacksAccount = new Account("jack's");
          final Account annasAccount = new Account("anna's");
          assertNull(jacksAccount.getId());
          assertNull(annasAccount.getId());
          
          //The first save() for an account creates an ascending ID and account number:
          testee.save(jacksAccount);
          final Long jacksAccountId = jacksAccount.getId();
  		assertNotNull(jacksAccountId);
          testee.save(annasAccount);
          final Long annasAccountId = annasAccount.getId();
  		assertNotNull(annasAccountId);
  		assertThat(annasAccountId, greaterThan(jacksAccountId));
  		
  		//The accountNo is always the same as the accountId:
  		assertEquals(annasAccountId, annasAccount.accountNo().toLong());
  		assertEquals(jacksAccountId, jacksAccount.accountNo().toLong());
      }
test_case.class_method_signature: AccountJpaRepositoryTest.saveCreatesAscendingAccountNumbers()
test_case.full_signature: @Test public void saveCreatesAscendingAccountNumbers()
test_case.identifier: saveCreatesAscendingAccountNumbers
test_case.invocations: assertNull getId assertNull getId save getId assertNotNull save getId assertNotNull assertThat greaterThan assertEquals toLong accountNo assertEquals toLong accountNo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void saveCreatesAscendingAccountNumbers()
focal_class.declarator: impl
focal_class.modifier: private final
focal_class.original_string: private final ImportedAccountJpaRepository impl;
focal_class.type: ImportedAccountJpaRepository
focal_class.var_name: impl
focal_class.file: spring-ddd/spring-ddd-bank/src/main/java/de/beuth/knabe/spring_ddd_bank/infrastructure/AccountJpaRepository.java
focal_class.identifier: AccountJpaRepository
focal_class.interfaces: implements AccountRepository
focal_class.class_method_signature: AccountJpaRepository.AccountJpaRepository(final ImportedAccountJpaRepository impl)
focal_class.full_signature: @Autowired public  AccountJpaRepository(final ImportedAccountJpaRepository impl)
focal_class.identifier: AccountJpaRepository
focal_class.modifiers: @Autowired public
focal_class.parameters: (final ImportedAccountJpaRepository impl)
focal_class.signature:  AccountJpaRepository(final ImportedAccountJpaRepository impl)
focal_class.class_method_signature: AccountJpaRepository.find(AccountNo acccountNo)
focal_class.full_signature: @Override public Optional<Account> find(AccountNo acccountNo)
focal_class.identifier: find
focal_class.modifiers: @Override public
focal_class.parameters: (AccountNo acccountNo)
focal_class.return: Optional<Account>
focal_class.signature: Optional<Account> find(AccountNo acccountNo)
focal_class.class_method_signature: AccountJpaRepository.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: AccountJpaRepository.save(final Account account)
focal_class.full_signature: public Account save(final Account account)
focal_class.identifier: save
focal_class.modifiers: public
focal_class.parameters: (final Account account)
focal_class.return: Account
focal_class.signature: Account save(final Account account)
focal_method.body: public Account save(final Account account){
          return impl.save(account);
      }
focal_method.class_method_signature: AccountJpaRepository.save(final Account account)
focal_method.full_signature: public Account save(final Account account)
focal_method.identifier: save
focal_method.invocations: save
focal_method.modifiers: public
focal_method.parameters: (final Account account)
focal_method.return: Account
focal_method.signature: Account save(final Account account)