blob: f609b6cfe663d1c7e8051843e7dcb74d4eb0b453 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2009 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jsp.core.tests;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import junit.framework.TestCase;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceInUse;
/**
* This class tests basic creation of IModelManager plugin and the
* ModelManger.
*
* Appropriate for BVT.
*/
public class TestModelManager extends TestCase {
/**
* Constructor for TestModelManager.
*
* @param name
*/
public TestModelManager(String name) {
super(name);
}
public void testModelManager() throws IOException {
IStructuredModel model = null;
IModelManager modelManager = StructuredModelManager.getModelManager();
assertTrue("modelManager must not be null", modelManager != null);
try {
model = modelManager.getModelForEdit(getClass().getName() + "." + getName() + ".test.jsp", new NullInputStream(), null);
assertTrue("basic JSP empty model could not be created", model != null);
} finally {
if (model != null) {
model.releaseFromEdit();
}
}
}
public void testCopyJSPModelForEdit() throws IOException {
IStructuredModel model = null;
try {
IModelManager modelManager = StructuredModelManager.getModelManager();
model = modelManager.getModelForEdit("test.jsp", new NullInputStream(), null);
IStructuredModel modelCopy = modelManager.copyModelForEdit(model.getId(), getName()+".newId");
assertNotNull("copied JSP model was null", modelCopy);
assertEquals("ModelHandlers differ", model.getModelHandler(), modelCopy.getModelHandler());
assertEquals("StructuredDocument RegionParsers differ", model.getStructuredDocument().getParser().getClass(), modelCopy.getStructuredDocument().getParser().getClass());
assertEquals("Text document contents differ", model.getStructuredDocument().get(), modelCopy.getStructuredDocument().get());
}
catch (ResourceInUse e) {
fail("Resource in use reported for " + model.getId());
}
finally {
if (model != null)
model.releaseFromEdit();
}
}
public void testNullArgument() throws UnsupportedEncodingException, IOException {
IStructuredModel model = null;
Exception e = null;
IModelManager modelManager = StructuredModelManager.getModelManager();
try {
model = modelManager.getModelForEdit((String) null, null, null);
} catch (IllegalArgumentException exception) {
e = exception;
assertTrue("illegal argument failed to throw IllegalArgumentException", e instanceof IllegalArgumentException);
} finally {
if (model != null) {
model.releaseFromEdit();
}
}
}
}