blob: 1c86f52ad22106750ba65b158bcae6be9b5ef030 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 - 2006 University Of British Columbia 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:
* University Of British Columbia - initial API and implementation
*******************************************************************************/
package org.eclipse.mylar.monitor.reports.tests;
import java.io.File;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.core.runtime.Path;
import org.eclipse.mylar.internal.core.MylarContext;
import org.eclipse.mylar.internal.core.ScalingFactor;
import org.eclipse.mylar.internal.core.ScalingFactors;
import org.eclipse.mylar.internal.monitor.InteractionEventLogger;
import org.eclipse.mylar.monitor.tests.MylarMonitorTestsPlugin;
import org.eclipse.mylar.provisional.core.IMylarElement;
import org.eclipse.mylar.provisional.core.InteractionEvent;
/**
* @author Mik Kersten
*/
public class ContextParsingTest extends TestCase {
private static final String PATH_USAGE_FILE = "testdata/usage-parsing.zip";
private List<InteractionEvent> events;
@Override
protected void setUp() throws Exception {
super.setUp();
File file;
if (MylarMonitorTestsPlugin.getDefault() != null) {
file = FileTool.getFileInPlugin(MylarMonitorTestsPlugin.getDefault(), new Path(PATH_USAGE_FILE));
} else {
file = new File(PATH_USAGE_FILE);
}
InteractionEventLogger logger = new InteractionEventLogger(file);
events = logger.getHistoryFromFile(file);
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
events.clear();
}
public void testOriginIdValidity() {
for (InteractionEvent event : events) {
if (event.isValidStructureHandle()) {
assertFalse(event.getStructureHandle().equals("null"));
}
}
}
public void testHistoryParsingWithDecayReset() {
ScalingFactors scalingFactors = new ScalingFactors();
// scalingFactors.setDecay(new ScalingFactor("decay", .05f));
MylarContext context = new MylarContext("test", scalingFactors);
int numEvents = 0;
for (InteractionEvent event : events) {
if (event.isValidStructureHandle()) {
// if (SelectionMonitor.isValidStructureHandle(event)) {
InteractionEvent newEvent = InteractionEvent.makeCopy(event, 1f);
context.parseEvent(newEvent);
if (event.isValidStructureHandle() && event.getKind().equals(InteractionEvent.Kind.SELECTION)) {
// if (SelectionMonitor.isValidStructureHandle(event) && event.getKind().equals(InteractionEvent.Kind.SELECTION)) {
IMylarElement element = context.parseEvent(event);
// reset decay if not selected
if (element.getInterest().getValue() < 0) {
float decayOffset = (-1) * (element.getInterest().getValue()) + 1;
element = context.parseEvent(new InteractionEvent(InteractionEvent.Kind.MANIPULATION,
event.getStructureKind(), event.getStructureHandle(), "test-decay", decayOffset));
}
assertTrue("should be positive: " + element.getInterest().getValue(), element.getInterest().getValue() >= 0);
numEvents++;
}
}
}
}
public void testScalingVactorSet() {
ScalingFactors scalingFactors = new ScalingFactors();
scalingFactors.setDecay(new ScalingFactor("decay", 0f));
MylarContext context = new MylarContext("test", scalingFactors);
assertEquals(0f, context.getScalingFactors().getDecay().getValue());
}
}