/*******************************************************************************
* Copyright (c) 2011, 2014 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.rap.rwt.internal.serverpush;
import static org.eclipse.rap.rwt.testfixture.internal.SerializationTestUtil.serializeAndDeserialize;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
public class CallBackActivationTracker_Test {
private ServerPushActivationTracker serverPushActivationTracker;
@Before
public void setUp() {
serverPushActivationTracker = new ServerPushActivationTracker();
}
@Test
public void testInitialActiveState() {
assertFalse( serverPushActivationTracker.isActive() );
}
@Test
public void testActivate() {
serverPushActivationTracker.activate( "x" );
assertTrue( serverPushActivationTracker.isActive() );
}
@Test
public void testActivateTwice() {
String id = "id";
serverPushActivationTracker.activate( id );
serverPushActivationTracker.activate( id );
assertTrue( serverPushActivationTracker.isActive() );
}
@Test
public void testIsActiveAfterActivate() {
serverPushActivationTracker.activate( "x" );
assertTrue( serverPushActivationTracker.isActive() );
}
@Test
public void testDeactivateWithNonExistingId() {
serverPushActivationTracker.deactivate( "does.not.exist" );
assertFalse( serverPushActivationTracker.isActive() );
}
@Test
public void testDeactivateExistingActivation() {
String id = "id";
serverPushActivationTracker.activate( id );
serverPushActivationTracker.deactivate( id );
assertFalse( serverPushActivationTracker.isActive() );
}
@Test
public void testDeactivateSameActivationTwice() {
String id = "id";
serverPushActivationTracker.activate( id );
serverPushActivationTracker.deactivate( id );
serverPushActivationTracker.deactivate( id );
assertFalse( serverPushActivationTracker.isActive() );
}
@Test
public void testActivateMultipleTimes() {
serverPushActivationTracker.activate( "id1" );
serverPushActivationTracker.activate( "id2" );
assertTrue( serverPushActivationTracker.isActive() );
}
@Test
public void testDeactivateOneFromMultipleActivations() {
serverPushActivationTracker.activate( "id1" );
serverPushActivationTracker.activate( "id2" );
serverPushActivationTracker.deactivate( "id2" );
assertTrue( serverPushActivationTracker.isActive() );
}
@Test
public void testSerializeWhenEmpty() throws Exception {
ServerPushActivationTracker deserializedTracker
= serializeAndDeserialize( serverPushActivationTracker );
assertTrue( serverPushActivationTracker.isActive() == deserializedTracker.isActive() );
}
@Test
public void testSerializeWhenHoldingIds() throws Exception {
String id = "id";
serverPushActivationTracker.activate( id );
ServerPushActivationTracker deserializedTracker
= serializeAndDeserialize( serverPushActivationTracker );
assertTrue( serverPushActivationTracker.isActive() == deserializedTracker.isActive() );
deserializedTracker.deactivate( id );
assertFalse( deserializedTracker.isActive() );
}
}