package com.vaadin.ui; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.Test; import com.vaadin.server.ServerRpcManager; import com.vaadin.shared.MouseEventDetails; import com.vaadin.shared.ui.checkbox.CheckBoxServerRpc; import com.vaadin.tests.util.MockUI; public class CheckBoxTest { @Test public void initiallyFalse() { CheckBox cb = new CheckBox(); assertFalse(cb.getValue()); } @Test public void testSetValue() { CheckBox cb = new CheckBox(); cb.setValue(true); assertTrue(cb.getValue()); cb.setValue(false); assertFalse(cb.getValue()); } @Test public void setValueChangeFromClientIsUserOriginated() { UI ui = new MockUI(); CheckBox cb = new CheckBox(); ui.setContent(cb); AtomicBoolean userOriginated = new AtomicBoolean(false); cb.addValueChangeListener( event -> userOriginated.set(event.isUserOriginated())); ComponentTest.syncToClient(cb); ServerRpcManager.getRpcProxy(cb, CheckBoxServerRpc.class) .setChecked(true, new MouseEventDetails()); assertTrue(userOriginated.get()); userOriginated.set(false); ComponentTest.syncToClient(cb); ServerRpcManager.getRpcProxy(cb, CheckBoxServerRpc.class) .setChecked(false, new MouseEventDetails()); assertTrue(userOriginated.get()); } @Test public void setValueChangeFromServerIsNotUserOriginated() { UI ui = new MockUI(); CheckBox cb = new CheckBox(); ui.setContent(cb); AtomicBoolean userOriginated = new AtomicBoolean(true); cb.addValueChangeListener( event -> userOriginated.set(event.isUserOriginated())); cb.setValue(true); assertFalse(userOriginated.get()); userOriginated.set(true); cb.setValue(false); assertFalse(userOriginated.get()); } @Test(expected = NullPointerException.class) public void setValue_nullValue_throwsNPE() { CheckBox cb = new CheckBox(); cb.setValue(null); } }