/*
* Copyright (c) 2004-2011 Marco Maccaferri 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:
* Marco Maccaferri - initial API and implementation
*/
package org.eclipsetrader.ui.internal.providers;
import junit.framework.TestCase;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.swt.graphics.ImageData;
import org.eclipsetrader.core.feed.Book;
import org.eclipsetrader.core.feed.BookEntry;
import org.eclipsetrader.core.feed.IBook;
import org.eclipsetrader.core.instruments.Security;
import org.eclipsetrader.core.views.IDataProvider;
public class PressureBarFactoryTest extends TestCase {
private Security security;
private IBook book;
private IAdaptable sourceAdaptable;
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
security = new Security("Test", null);
sourceAdaptable = new IAdaptable() {
@Override
@SuppressWarnings({
"unchecked", "rawtypes"
})
public Object getAdapter(Class adapter) {
if (adapter.isAssignableFrom(Security.class)) {
return security;
}
if (adapter.isAssignableFrom(IBook.class)) {
return book;
}
return null;
}
};
}
public void testGetValueWithNullBook() throws Exception {
IDataProvider provider = new PressureBarFactory().createProvider();
IAdaptable value = provider.getValue(sourceAdaptable);
assertNull(value);
}
public void testGetBookPressure() throws Exception {
book = new Book(new BookEntry[] {
new BookEntry(null, 10.0, 100L, null, null),
}, new BookEntry[] {
new BookEntry(null, 10.0, 50L, null, null),
});
IDataProvider provider = new PressureBarFactory().createProvider();
provider.init(sourceAdaptable);
IAdaptable value = provider.getValue(sourceAdaptable);
assertNotNull(value);
assertNotNull(value.getAdapter(ImageData.class));
}
public void testGetBidOnlyBookPressure() throws Exception {
book = new Book(new BookEntry[] {
new BookEntry(null, 10.0, 100L, null, null),
}, new BookEntry[0]);
IDataProvider provider = new PressureBarFactory().createProvider();
provider.init(sourceAdaptable);
IAdaptable value = provider.getValue(sourceAdaptable);
assertNotNull(value);
assertNotNull(value.getAdapter(ImageData.class));
}
public void testGetAskOnlyBookPressure() throws Exception {
book = new Book(new BookEntry[0], new BookEntry[] {
new BookEntry(null, 10.0, 50L, null, null),
});
IDataProvider provider = new PressureBarFactory().createProvider();
provider.init(sourceAdaptable);
IAdaptable value = provider.getValue(sourceAdaptable);
assertNotNull(value);
assertNotNull(value.getAdapter(ImageData.class));
}
public void testGetSameValueInstance() throws Exception {
book = new Book(new BookEntry[] {
new BookEntry(null, 10.0, 100L, null, null),
}, new BookEntry[] {
new BookEntry(null, 10.0, 50L, null, null),
});
IDataProvider provider = new PressureBarFactory().createProvider();
provider.init(sourceAdaptable);
IAdaptable value = provider.getValue(sourceAdaptable);
assertSame(value, provider.getValue(sourceAdaptable));
}
public void testGetNewValueInstanceWithBookUpdate() throws Exception {
book = new Book(new BookEntry[] {
new BookEntry(null, 10.0, 100L, null, null),
}, new BookEntry[] {
new BookEntry(null, 10.0, 50L, null, null),
});
IDataProvider provider = new PressureBarFactory().createProvider();
provider.init(sourceAdaptable);
IAdaptable value1 = provider.getValue(sourceAdaptable);
book = new Book(new BookEntry[] {
new BookEntry(null, 10.0, 100L, null, null),
}, new BookEntry[] {
new BookEntry(null, 10.0, 75L, null, null),
});
IAdaptable value2 = provider.getValue(sourceAdaptable);
assertNotSame(value1, value2);
}
}