blob: 630d4ced59b7b7f04380f1b228c37089657eeab2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 Matthew Hall 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:
* Matthew Hall - initial API and implementation (bug 219909)
* Matthew Hall - bug 213145
******************************************************************************/
package org.eclipse.core.tests.internal.databinding.observable;
import org.eclipse.core.databinding.observable.IObservable;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.WritableValue;
import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableValue;
import org.eclipse.jface.databinding.conformance.ObservableValueContractTest;
import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
import junit.framework.Test;
import junit.framework.TestSuite;
/**
* @since 3.2
*
*/
public class UnmodifiableObservableValueTest {
public static Test suite() {
TestSuite suite = new TestSuite(UnmodifiableObservableValueTest.class.getName());
suite.addTest(ObservableValueContractTest.suite(new Delegate()));
return suite;
}
private static class Delegate extends
AbstractObservableValueContractDelegate {
private Object valueType = new Object();
public IObservableValue createObservableValue(Realm realm) {
return new UnmodifiableObservableValueStub(new WritableValue(realm,
null, valueType));
}
public Object getValueType(IObservableValue observable) {
return valueType;
}
public Object createValue(IObservableValue observable) {
return new Object();
}
public void change(IObservable observable) {
UnmodifiableObservableValueStub wrapper = (UnmodifiableObservableValueStub) observable;
wrapper.wrappedValue.setValue(createValue(wrapper));
}
}
private static class UnmodifiableObservableValueStub extends
UnmodifiableObservableValue {
IObservableValue wrappedValue;
UnmodifiableObservableValueStub(IObservableValue wrappedValue) {
super(wrappedValue);
this.wrappedValue = wrappedValue;
}
}
}