blob: 21710ee55cb78cc45f67e41df1022b33ca1d8d57 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 Remain Software
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* wim.jongman@remainsoftware.com - initial API and implementation
*******************************************************************************/
package org.eclipse.tips.core;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.Collections;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.tips.core.internal.TipManager;
import org.junit.Before;
import org.junit.Test;
@SuppressWarnings("restriction")
public class TipProviderTest {
private TestTipManager fManager;
private TestTipProvider fProvider;
@Before
public void testTipProvider() {
fManager = new TestTipManager();
fManager.open(false);
fProvider = (TestTipProvider) new TestTipProvider().setManager(fManager);
}
@Test
public void testDispose() {
fProvider.dispose();
}
@Test
public void testGetDescription() {
assertTrue(fProvider.getDescription() != null);
}
@Test
public void testGetID() {
assertTrue(fProvider.getID() != null);
assertTrue(fProvider.getID().equals(fProvider.getClass().getName()));
}
@Test
public void testGetImage() {
assertTrue(fProvider.getImage() != null);
}
@Test
public void testGetTips() {
assertTrue(fProvider.getTips(null).size() == 0);
createTestData();
fManager.setAsRead(fProvider.getNextTip());
assertTrue(fProvider.getTips(null).size() == 2);
assertTrue(fProvider.getTips(null).size() == 2);
assertTrue(fProvider.getTips().size() == 1);
((TipManager) fProvider.getManager()).setServeReadTips(true);
assertTrue(fProvider.getTips(null).size() == 2);
}
private void createTestData() {
fProvider.setTips(Arrays.asList(new TestTip(fProvider.getID(), "<b>bold</b>", "Tip 1"),
new TestTip(fProvider.getID(), "<b>bold2</b>", "Tip 2")));
}
@Test
public void testGetCurrentTip() {
assertTrue(fProvider.getNextTip().equals(fProvider.getCurrentTip()));
}
@Test
public void testGetCurrentTip2() {
assertTrue(fProvider.getCurrentTip().equals(fProvider.getPreviousTip()));
}
@Test
public void testGetNextTip() {
createTestData();
fManager.setAsRead(fProvider.getNextTip());
assertTrue(fProvider.getNextTip().equals(fProvider.getCurrentTip()));
Tip nextTip = fProvider.getNextTip();
fManager.setAsRead(nextTip);
assertTrue(fManager.isRead(nextTip));
Tip nextTip2 = fProvider.getNextTip();
fManager.setAsRead(nextTip2);
assertTrue(fManager.isRead(nextTip2));
assertTrue(fProvider.getNextTip().getClass().getSimpleName().equals("FinalTip"));
((TipManager) fProvider.getManager()).setServeReadTips(true);
assertFalse(fProvider.getNextTip().getClass().getSimpleName().equals("FinalTip"));
}
@Test
public void testGetPreviousTip() {
assertTrue(fProvider.getPreviousTip().equals(fProvider.getCurrentTip()));
assertTrue(fProvider.getPreviousTip().equals(fProvider.getCurrentTip()));
}
@Test
public void testGetPreviousTip2() {
assertTrue(!fProvider.getPreviousTip().equals(null));
assertTrue(fProvider.getNextTip().getClass().getSimpleName().equals("FinalTip"));
}
@Test
public void testGetPreviousTip3() {
((TipManager) fProvider.getManager()).setServeReadTips(true);
assertTrue(fProvider.getPreviousTip().equals(fProvider.getCurrentTip()));
}
@Test
public void testGetPreviousTip4() {
createTestData();
assertTrue(fProvider.getPreviousTip() != null);
assertTrue(fProvider.getPreviousTip() != null);
assertTrue(fProvider.getPreviousTip() != null);
}
@Test
public void testGetTipManager() {
assertTrue(fProvider.getManager().equals(fManager));
}
@Test
public void testIsReady() {
TestTipProvider p = (TestTipProvider) new TestTipProvider().setManager(fManager);
assertTrue(!p.isReady());
p.setTips(Collections.emptyList());
assertTrue(p.isReady());
}
@Test
public void testLoad() {
TestTipProvider p = (TestTipProvider) new TestTipProvider().setManager(fManager);
assertTrue(!p.isReady());
p.loadNewTips(new NullProgressMonitor());
assertTrue(p.isReady());
}
@Test
public void testSetManager() {
TestTipProvider p = new TestTipProvider();
assertTrue(p.getManager() == null);
p.setManager(fManager);
assertTrue(p.getManager() != null);
}
@Test
public void testSetTips() {
TestTipProvider p = new TestTipProvider() {
@Override
public IStatus loadNewTips(IProgressMonitor pMonitor) {
assertTrue(getTips(null).size() == 0);
assertTrue(setTips(Arrays.asList(new Tip[] { new TestTip(getID(), "DDD", "XXX") })).getTips(null)
.size() == 1);
return Status.OK_STATUS;
}
};
assertTrue(p.getTips(null).size() == 0);
fManager.register(p);
assertTrue(p.getTips(null).size() == 1);
}
@Test
public void testAddTips() {
TestTipProvider p = new TestTipProvider() {
@Override
public IStatus loadNewTips(IProgressMonitor pMonitor) {
assertTrue(getTips(null).size() == 0);
assertTrue(setTips(Arrays.asList(new Tip[] { new TestTip(getID(), "DDD", "XXX") })).getTips(null)
.size() == 1);
assertTrue(addTips(Arrays.asList(new Tip[] { new TestTip(getID(), "DDD", "XXX") })).getTips(null)
.size() == 2);
return Status.OK_STATUS;
}
};
fManager.register(p);
}
}