package hu.sch.domain;
import java.util.Date;
import org.junit.Test;
import static org.assertj.core.api.Assertions.*;
import org.junit.Before;
/**
*
* @author tomi
*/
public class MembershipTest {
private static final String TEST_POST_NAME = "test";
private Membership membership;
@Before
public void createMembership() {
membership = new Membership();
}
@Test
public void noPostMeansRegularMember() {
assertThat(membership.getAllPosts()).contains(Membership.ACTIVE_MEMBERSHIP_POST);
}
@Test
public void endedMembershipHasOregtagPost() {
membership.setEnd(new Date());
assertThat(membership.getAllPosts()).contains(Membership.INACTIVE_MEMBERSHIP_POST);
}
@Test
public void regularMembershipOnlyAppliesWhenThereAreNoOtherPosts() {
addPostToMembership(TEST_POST_NAME);
assertThat(membership.getAllPosts()).doesNotContain(Membership.ACTIVE_MEMBERSHIP_POST);
}
@Test
public void inactiveMembershipStillHasItsPosts() {
addPostToMembership(TEST_POST_NAME);
membership.setEnd(new Date());
assertThat(membership.getAllPosts()).contains(TEST_POST_NAME);
}
@Test
public void membershipCanHaveMultiplePosts() {
addPostToMembership(TEST_POST_NAME);
addPostToMembership(TEST_POST_NAME + "2");
assertThat(membership.getAllPosts()).hasSize(2);
}
private void addPostToMembership(String name) {
PostType pt = new PostType();
pt.setPostName(name);
Post p = new Post();
p.setPostType(pt);
membership.getPosts().add(p);
}
}