01: /*******************************************************************************
02: * Copyright (c) 2006 Brad Reynolds
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * Brad Reynolds - bug 158687
10: * Brad Reynolds - bug 164653
11: ******************************************************************************/package org.eclipse.core.tests.databinding.observable.value;
12:
13: import junit.framework.Test;
14:
15: import org.eclipse.core.databinding.observable.IObservable;
16: import org.eclipse.core.databinding.observable.Realm;
17: import org.eclipse.core.databinding.observable.value.IObservableValue;
18: import org.eclipse.core.databinding.observable.value.WritableValue;
19: import org.eclipse.jface.conformance.databinding.AbstractObservableValueContractDelegate;
20: import org.eclipse.jface.conformance.databinding.MutableObservableValueContractTest;
21: import org.eclipse.jface.conformance.databinding.ObservableValueContractTest;
22: import org.eclipse.jface.conformance.databinding.SuiteBuilder;
23: import org.eclipse.jface.databinding.swt.SWTObservables;
24: import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
25: import org.eclipse.swt.widgets.Display;
26:
27: /**
28: * @since 3.2
29: */
30: public class WritableValueTest extends AbstractDefaultRealmTestCase {
31: /**
32: * All constructors delegate to the 3 arg constructor.
33: *
34: * @throws Exception
35: */
36: public void testConstructor() throws Exception {
37: WritableValue value = new WritableValue(SWTObservables
38: .getRealm(Display.getDefault()));
39: assertNull(value.getValue());
40: assertNull(value.getValueType());
41: }
42:
43: public void testWithValueType() throws Exception {
44: Object elementType = String.class;
45: WritableValue value = WritableValue.withValueType(elementType);
46: assertNotNull(value);
47: assertEquals(Realm.getDefault(), value.getRealm());
48: assertEquals(elementType, value.getValueType());
49: }
50:
51: public static Test suite() {
52: Delegate delegate = new Delegate();
53:
54: return new SuiteBuilder().addTests(WritableValueTest.class)
55: .addObservableContractTest(
56: ObservableValueContractTest.class, delegate)
57: .addObservableContractTest(
58: MutableObservableValueContractTest.class,
59: delegate).build();
60: }
61:
62: /* package */static class Delegate extends
63: AbstractObservableValueContractDelegate {
64: public IObservableValue createObservableValue(Realm realm) {
65: return new WritableValue(realm, "", String.class);
66: }
67:
68: public void change(IObservable observable) {
69: IObservableValue observableValue = (IObservableValue) observable;
70: observableValue.setValue(createValue(observableValue));
71: }
72:
73: public Object getValueType(IObservableValue observable) {
74: return String.class;
75: }
76:
77: public Object createValue(IObservableValue observable) {
78: return observable.getValue() + "a";
79: }
80: }
81: }
|