package org.richfaces.cdk.model; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; public class TestAttributeMergability { private AttributeModel visibleAttribute; private AttributeModel hiddenAttribute; @Before public void before() { visibleAttribute = new AttributeModel(); hiddenAttribute = new AttributeModel(); hiddenAttribute.setHidden(true); } @Test public void when_both_are_visible_then_result_is_visible() { // given AttributeModel attribute = new AttributeModel(); assertFalse(attribute.isHidden()); // when attribute.merge(visibleAttribute); // then assertFalse(attribute.isHidden()); } @Test public void when_both_are_hidden_then_result_is_hidden() { // given AttributeModel attribute = new AttributeModel(); attribute.setHidden(true); assertTrue(attribute.isHidden()); // when attribute.merge(hiddenAttribute); // then assertTrue(attribute.isHidden()); } @Test public void when_source_is_hidden_and_target_visible_then_result_is_hidden() { // given AttributeModel attribute = new AttributeModel(); attribute.setHidden(true); assertTrue(attribute.isHidden()); // when attribute.merge(visibleAttribute); // then assertTrue(attribute.isHidden()); } @Test public void when_target_is_hidden_and_source_visible_then_result_is_hidden() { // given AttributeModel attribute = new AttributeModel(); assertFalse(attribute.isHidden()); // when attribute.merge(hiddenAttribute); // then assertTrue(attribute.isHidden()); } }