From d37f6933084835be6af3d061f03a3cf5b022ced7 Mon Sep 17 00:00:00 2001 From: razzanYoni <13521087@mahasiswa.itb.ac.id> Date: Thu, 2 Nov 2023 00:39:34 +0700 Subject: [PATCH] feat: add unit test to Subscription model --- .../java/org/tonality/model/Subscription.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/src/main/java/org/tonality/model/Subscription.java b/src/main/java/org/tonality/model/Subscription.java index 56734ce..776313f 100644 --- a/src/main/java/org/tonality/model/Subscription.java +++ b/src/main/java/org/tonality/model/Subscription.java @@ -51,4 +51,84 @@ public class Subscription implements Serializable { @Temporal(TemporalType.TIMESTAMP) @ColumnDefault("CURRENT_TIMESTAMP(6) on update CURRENT_TIMESTAMP(6)") private Date updatedAt; + + @PrePersist + public void prePersist() { + if (status == null) { + status = SubscriptionStatus.PENDING; + } + updatedAt = new Date(); + } + + @PreUpdate + public void preUpdate() { + updatedAt = new Date(); + } + + public String toString() { + return "Subscription: " + subscriptionId + " " + userId + " " + albumId + " " + status; + } + + // Test + public static void main(String[] args) { + SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); + + // Create subscription + try { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + + Subscription subscription = new Subscription(); + subscription.setUserId(1); + subscription.setAlbumId(1); + session.save(subscription); + tx.commit(); + session.close(); + } catch (Exception e) { + System.out.println("Error: " + e.getMessage()); + } + + // Get subscription from database + try { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + + Subscription lastSubsId = session.createQuery("from subscription order by subscriptionId desc", Subscription.class).setMaxResults(1).list().get(0); + Subscription subscription = session.get(Subscription.class, lastSubsId.getSubscriptionId()); + System.out.println(subscription); + tx.commit(); + session.close(); + } catch (Exception e) { + System.out.println("Error: " + e.getMessage()); + } + + // Update subscription + try { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + + Subscription firstSubsId = session.createQuery("from subscription order by subscriptionId asc", Subscription.class).setMaxResults(1).list().get(0); + Subscription subscription = session.get(Subscription.class, firstSubsId.getSubscriptionId()); + subscription.setStatus(SubscriptionStatus.ACTIVE); + session.update(subscription); + tx.commit(); + session.close(); + } catch (Exception e) { + System.out.println("Error: " + e.getMessage()); + } + + // Delete subscription + try { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + + Subscription lastSubsId = session.createQuery("from subscription order by subscriptionId desc", Subscription.class).setMaxResults(1).list().get(0); + Subscription subscription = session.get(Subscription.class, lastSubsId.getSubscriptionId()); + session.delete(subscription); + tx.commit(); + session.close(); + } catch (Exception e) { + System.out.println("Error: " + e.getMessage()); + } + } } -- GitLab