@Test public void testGetStatusAtDate() { // Tier with preset max token amount and not all sold SaleTier t = createTier(0, "1970-01-03", "1970-01-06", BigDecimal.ZERO, BigInteger.TEN, true, false); Date date = Date.valueOf("1970-01-02"); assertEquals(t.getStatusAtDate(date), StatusType.INCOMING); date = Date.valueOf("1970-01-03"); assertEquals(t.getStatusAtDate(date), StatusType.ACTIVE); date = Date.valueOf("1970-01-04"); assertEquals(t.getStatusAtDate(date), StatusType.ACTIVE); date = Date.valueOf("1970-01-06"); assertEquals(t.getStatusAtDate(date), StatusType.CLOSED); date = Date.valueOf("1970-01-07"); assertEquals(t.getStatusAtDate(date), StatusType.CLOSED); t.setTomicsSold(BigInteger.TEN); date = Date.valueOf("1970-01-04"); assertEquals(t.getStatusAtDate(date), StatusType.CLOSED); t.setTomicsSold(BigInteger.TEN.add(BigInteger.TEN)); date = Date.valueOf("1970-01-04"); assertEquals(t.getStatusAtDate(date), StatusType.CLOSED); // Tier without max token amount set (i.e. set to zero) t = createTier(0, "1970-01-03", "1970-01-06", BigDecimal.ZERO, BigInteger.ZERO, false, true); t.setTomicsSold(BigInteger.TEN); date = Date.valueOf("1970-01-02"); assertEquals(t.getStatusAtDate(date), StatusType.INCOMING); date = Date.valueOf("1970-01-03"); assertEquals(t.getStatusAtDate(date), StatusType.CLOSED); }
protected SaleTierResponse fromEntityToResponse(SaleTier tier) { SaleTierResponse response = new SaleTierResponse(); response.setAmount(tier.getTomicsSold()); response.setDiscount(tier.getDiscount()); response.setEndDate(tier.getEndDate()); response.setStartDate(tier.getStartDate()); response.setMaxAmount(tier.getTomicsMax()); response.setName(tier.getDescription()); response.setTierNo(tier.getTierNo()); response.setType(tier.getStatusAtDate(Date.from(Instant.now()))); return response; } }