/** * Copyright 2010 CosmoCode GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.cosmcode.palava.media; import java.util.Calendar; import java.util.Date; import org.junit.Assert; import org.junit.Test; import de.cosmocode.junit.UnitProvider; import de.cosmocode.palava.media.asset.AssetBase; /** * Abstract test for {@link AssetBase}s. * * @since 2.0 * @author Willi Schoenborn */ public abstract class AssetBaseTest implements UnitProvider<AssetBase> { private Date future() { final Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, 1); return calendar.getTime(); } private Date past() { final Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -1); return calendar.getTime(); } /** * Tests {@link AssetBase#setExpiresAt(Date)} with null. */ @Test public void setExpiresNull() { final AssetBase unit = unit(); final Date expiresAt = null; unit.setExpiresAt(expiresAt); Assert.assertSame(expiresAt, unit.getExpiresAt()); Assert.assertNull(unit.getExpiresAt()); } /** * Tests {@link AssetBase#setExpiresAt(Date)} with a date in the future. */ @Test public void setExpiresFuture() { final AssetBase unit = unit(); final Date expiresAt = future(); unit.setExpiresAt(expiresAt); Assert.assertSame(expiresAt, unit.getExpiresAt()); } /** * Tests {@link AssetBase#setExpiresAt(Date)} with a date in the past. */ @Test public void setExpiresPast() { final AssetBase unit = unit(); final Date expiresAt = past(); unit.setExpiresAt(expiresAt); Assert.assertSame(expiresAt, unit.getExpiresAt()); } /** * Tests {@link AssetBase#isExpirable()} with a null expiresAt date. */ @Test public void isExpirableNull() { final AssetBase unit = unit(); unit.setExpiresAt(null); Assert.assertFalse(unit.isExpirable()); } /** * Tests {@link AssetBase#isExpirable()} with a future expiresAt date. */ @Test public void isExpirableFuture() { final AssetBase unit = unit(); unit.setExpiresAt(future()); Assert.assertTrue(unit.isExpirable()); } /** * Tests {@link AssetBase#isExpirable()} with a past expiresAt date. */ @Test public void isExpirablePast() { final AssetBase unit = unit(); unit.setExpiresAt(past()); Assert.assertTrue(unit.isExpirable()); } /** * Tests {@link AssetBase#isExpiring()} with expired and null expiresAt date. */ @Test public void isExpiringExpiredNull() { final AssetBase unit = unit(); unit.setExpired(true); Assert.assertTrue(unit.isExpired()); unit.setExpiresAt(null); Assert.assertFalse(unit.isExpiring()); } /** * Tests {@link AssetBase#isExpiring()} with expired and a future expiresAt date. */ @Test public void isExpiringExpiredFuture() { final AssetBase unit = unit(); unit.setExpired(true); Assert.assertTrue(unit.isExpired()); unit.setExpiresAt(future()); Assert.assertFalse(unit.isExpiring()); } /** * Tests {@link AssetBase#isExpiring()} with expired and a past expiresAt date. */ @Test public void isExpiringExpiredPast() { final AssetBase unit = unit(); unit.setExpired(true); Assert.assertTrue(unit.isExpired()); unit.setExpiresAt(past()); Assert.assertFalse(unit.isExpiring()); } /** * Tests {@link AssetBase#isExpiring()} with not expired and null expiresAt date. */ @Test public void isExpiringNotExpiredNull() { final AssetBase unit = unit(); unit.setExpired(false); Assert.assertFalse(unit.isExpired()); unit.setExpiresAt(null); Assert.assertFalse(unit.isExpiring()); } /** * Tests {@link AssetBase#isExpiring()} with not expired and a future expiresAt date. */ @Test public void isExpiringNotExpiredFuture() { final AssetBase unit = unit(); unit.setExpired(false); Assert.assertFalse(unit.isExpired()); unit.setExpiresAt(future()); Assert.assertFalse(unit.isExpiring()); } /** * Tests {@link AssetBase#isExpiring()} with not expired and a past expiresAt date. */ @Test public void isExpiringNotExpiredPast() { final AssetBase unit = unit(); unit.setExpired(false); Assert.assertFalse(unit.isExpired()); unit.setExpiresAt(past()); Assert.assertTrue(unit.isExpiring()); } /** * Tests {@link AssetBase#setExpired()}. */ @Test public void setExpired() { final AssetBase unit = unit(); Assert.assertFalse(unit.isExpired()); unit.setExpired(true); Assert.assertTrue(unit.isExpired()); } /** * Tests {@link AssetBase#isUnexpiring()} with expired and a null expiresAt date. */ @Test public void isUnexpiringExpiredNull() { final AssetBase unit = unit(); unit.setExpired(true); Assert.assertTrue(unit.isExpired()); unit.setExpiresAt(null); Assert.assertTrue(unit.isUnexpiring()); } /** * Tests {@link AssetBase#isUnexpiring()} with expired and a future expiresAt date. */ @Test public void isUnexpiringExpiredFuture() { final AssetBase unit = unit(); unit.setExpired(true); Assert.assertTrue(unit.isExpired()); unit.setExpiresAt(future()); Assert.assertTrue(unit.isUnexpiring()); } /** * Tests {@link AssetBase#isUnexpiring()} with expired and a past expiresAt date. */ @Test public void isUnexpiringExpiredPast() { final AssetBase unit = unit(); unit.setExpired(true); Assert.assertTrue(unit.isExpired()); unit.setExpiresAt(past()); Assert.assertFalse(unit.isUnexpiring()); } /** * Tests {@link AssetBase#isUnexpiring()} with not expired and a null expiresAt date. */ @Test public void isUnexpiringNotExpiredNull() { final AssetBase unit = unit(); unit.setExpired(false); Assert.assertFalse(unit.isExpired()); unit.setExpiresAt(null); Assert.assertFalse(unit.isUnexpiring()); } /** * Tests {@link AssetBase#isUnexpiring()} with not expired and a future expiresAt date. */ @Test public void isUnexpiringNotExpiredFuture() { final AssetBase unit = unit(); unit.setExpired(false); Assert.assertFalse(unit.isExpired()); unit.setExpiresAt(future()); Assert.assertFalse(unit.isUnexpiring()); } /** * Tests {@link AssetBase#isUnexpiring()} with not expired and a past expiresAt date. */ @Test public void isUnexpiringNotExpiredPast() { final AssetBase unit = unit(); unit.setExpired(false); Assert.assertFalse(unit.isExpired()); unit.setExpiresAt(past()); Assert.assertFalse(unit.isUnexpiring()); } }