Browse Source

Fix test for deleted account

tags/v0.10.5
Kristijan Mitrovic 4 years ago
parent
commit
be387b1965
2 changed files with 16 additions and 7 deletions
  1. +4
    -0
      bubble-server/src/main/java/bubble/dao/account/AccountDAO.java
  2. +12
    -7
      bubble-server/src/test/java/bubble/test/system/AccountDeletionTest.java

+ 4
- 0
bubble-server/src/main/java/bubble/dao/account/AccountDAO.java View File

@@ -48,6 +48,7 @@ import static java.util.concurrent.TimeUnit.MINUTES;
import static org.cobbzilla.util.daemon.ZillaRuntime.daemon; import static org.cobbzilla.util.daemon.ZillaRuntime.daemon;
import static org.cobbzilla.wizard.model.IdentifiableBase.CTIME_ASC; import static org.cobbzilla.wizard.model.IdentifiableBase.CTIME_ASC;
import static org.cobbzilla.wizard.resources.ResourceUtil.invalidEx; import static org.cobbzilla.wizard.resources.ResourceUtil.invalidEx;
import static org.hibernate.criterion.Restrictions.isNotNull;


@Repository @Slf4j @Repository @Slf4j
public class AccountDAO extends AbstractCRUDDAO<Account> implements SqlViewSearchableDAO<Account> { public class AccountDAO extends AbstractCRUDDAO<Account> implements SqlViewSearchableDAO<Account> {
@@ -425,4 +426,7 @@ public class AccountDAO extends AbstractCRUDDAO<Account> implements SqlViewSearc
} }
} }


@NonNull public List<Account> findDeleted() {
return list(criteria().add(isNotNull("deleted")));
}
} }

+ 12
- 7
bubble-server/src/test/java/bubble/test/system/AccountDeletionTest.java View File

@@ -24,27 +24,32 @@ public class AccountDeletionTest extends ActivatedBubbleModelTestBase {


modelTest("account_deletion/delete_account_with_payments"); modelTest("account_deletion/delete_account_with_payments");


assertEquals("Archived payments record not created for deleted user", 1, archivedInfoDAO.countAll().intValue());

final var accountDAO = getBean(AccountDAO.class); final var accountDAO = getBean(AccountDAO.class);
final var deletedAccounts = accountDAO.findDeleted();
// there should be just 1 deleted account - finding it by corresponding hashed password value: // there should be just 1 deleted account - finding it by corresponding hashed password value:
final var deletedAccount = accountDAO.findByUniqueField("hashedPassword", HashedPassword.DELETED);
// just in case:
assertEquals("Wrong number of deleted accounts found", 1, deletedAccounts.size());
final var deletedAccount = deletedAccounts.get(0);
assertEquals("Deleted account has wrong hashed password",
HashedPassword.DELETED.getHashedPassword(),
deletedAccount.getHashedPassword().getHashedPassword());
assertTrue("Account found with 'deleted' password is not marked as deleted", deletedAccount.deleted()); assertTrue("Account found with 'deleted' password is not marked as deleted", deletedAccount.deleted());


// there should be just 1 archived payment info records corresponding to that 1 deleted account
assertEquals("Archived payments record not created for deleted user", 1, archivedInfoDAO.countAll().intValue());

final var archivedInfo = archivedInfoDAO.findByAccountUuid(deletedAccount.getUuid()); final var archivedInfo = archivedInfoDAO.findByAccountUuid(deletedAccount.getUuid());
assertNotNull("Archived payment info not found for deleted user", archivedInfo); assertNotNull("Archived payment info not found for deleted user", archivedInfo);


final var archivedBills = archivedInfo.getBills(); final var archivedBills = archivedInfo.getBills();
assertEquals("Only 1 bill should be in for deleted account", archivedBills.length);
assertEquals("Only 1 bill should be in for deleted account", 1, archivedBills.length);


final var archivedPayments = archivedInfo.getPayments(); final var archivedPayments = archivedInfo.getPayments();
assertEquals("Only 1 bill should be in for deleted account", archivedPayments.length);
assertEquals("Only 1 payment should be in for deleted account", 1, archivedPayments.length);
assertEquals("Archived payment should be for archived bill", assertEquals("Archived payment should be for archived bill",
archivedBills[0].getUuid(), archivedPayments[0].getBill()); archivedBills[0].getUuid(), archivedPayments[0].getBill());


final var archivedPaymentMethods = archivedInfo.getPaymentMethods(); final var archivedPaymentMethods = archivedInfo.getPaymentMethods();
assertEquals("Only 1 bill should be in for deleted account", archivedPaymentMethods.length);
assertEquals("Only 1 payment method should be in for deleted account", 1, archivedPaymentMethods.length);
assertEquals("Archived payment method should be for used within archived payment", assertEquals("Archived payment method should be for used within archived payment",
archivedPayments[0].getPaymentMethod(), archivedPaymentMethods[0].getUuid()); archivedPayments[0].getPaymentMethod(), archivedPaymentMethods[0].getUuid());
} }


Loading…
Cancel
Save