blob: 564a1af4b8211f47a00fa266162a6552061e4869 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.modules.java.guards;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.text.BadLocationException;
import junit.framework.TestCase;
import org.netbeans.api.editor.guards.GuardedSection;
/**
*
* @author Jan Pokorsky
*/
public class JavaGuardedWriterTest extends TestCase {
public JavaGuardedWriterTest(String testName) {
super(testName);
}
protected void setUp() throws Exception {
}
protected void tearDown() throws Exception {
}
/**
* Test of translate method, of class org.netbeans.modules.java.guards.JavaGuardedWriter.
*/
public void testTranslatePlain() {
System.out.println("write plain");
char[] writeBuff = "\nclass A {\n}\n".toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
List<GuardedSection> sections = Collections.<GuardedSection>emptyList();
char[] expResult = writeBuff;
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(String.valueOf(expResult), String.valueOf(result));
}
public void testTranslateLINE() throws BadLocationException {
System.out.println("write //" + "GEN-LINE:");
String writeStr = "\nclass A {" + "\n}\n";
String expStr = "\nclass A {//" + "GEN-LINE:hu\n}\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createSimpleSection("hu", 1, writeStr.indexOf("\n}")));
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
}
public void testTranslateLINEWithSpaces() throws BadLocationException {
System.out.println("write with spaces //" + "GEN-LINE:");
String writeStr = "\nclass A { " + " \n}\n";
String expStr = "\nclass A {//" + "GEN-LINE:hu\n}\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createSimpleSection("hu", 1, writeStr.indexOf("\n}")));
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
}
public void testTranslateBEGIN_END() throws BadLocationException {
System.out.println("write //" + "GEN-BEGIN_END:");
String writeStr = "\nclass A {" + "\n\n}" + "\n";
String expStr = "\nclass A {//" + "GEN-BEGIN:hu\n\n}//" + "GEN-END:hu\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createSimpleSection("hu", 1, writeStr.length() - 1));
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
}
public void testTranslateBEGIN_ENDWithSpaces() throws BadLocationException {
System.out.println("write with spaces //" + "GEN-BEGIN_END:");
String writeStr = "\nclass A { " + " \n\n} " + " \n";
String expStr = "\nclass A {//" + "GEN-BEGIN:hu\n\n}//" + "GEN-END:hu\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createSimpleSection("hu", 1, writeStr.length() - 1));
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
}
public void testTranslateFIRST_LAST() throws BadLocationException {
System.out.println("write //" + "GEN-FIRST_LAST:");
String writeStr = "\nclass A { " + "\n statement;\n}" + "\n";
String expStr = "\nclass A {//" + "GEN-FIRST:hu\n statement;\n}//" + "GEN-LAST:hu\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createInteriorSection("hu",
1, writeStr.indexOf("\n statement;"),
writeStr.indexOf("}"), writeStr.length() - 1));
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
}
public void testTranslateFIRST_LASTWithSpaces() throws BadLocationException {
System.out.println("write with spaces //" + "GEN-FIRST_LAST:");
String writeStr = "\nclass A { " + " \n statement;\n} " + " \n";
String expStr = "\nclass A {//" + "GEN-FIRST:hu\n statement;\n}//" + "GEN-LAST:hu\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createInteriorSection("hu",
1, writeStr.indexOf("\n statement;"),
writeStr.indexOf("}"), writeStr.length() - 1));
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
}
public void testTranslateFIRST_HEADEREND_LAST() throws BadLocationException {
System.out.println("write //" + "GEN-FIRST_HEADEREND_LAST:");
String writeStr = "\nclass A " + " \n{ " + " \n statement;\n} " + " \n";
String expStr = "\nclass A//" + "GEN-FIRST:hu\n{//" + "GEN-HEADEREND:hu\n statement;\n}//" + "GEN-LAST:hu\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createInteriorSection("hu",
1, writeStr.indexOf("\n statement;"),
writeStr.indexOf("}"), writeStr.length() - 1));
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
}
public void testTranslateFIRST_HEADEREND_LASTWithSpaces() throws BadLocationException {
System.out.println("write with spaces //" + "GEN-FIRST_HEADEREND_LAST:");
String writeStr = "\nclass A" + "\n{" + "\n statement;\n}" + "\n";
String expStr = "\nclass A//" + "GEN-FIRST:hu\n{//" + "GEN-HEADEREND:hu\n statement;\n}//" + "GEN-LAST:hu\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createInteriorSection("hu",
1, writeStr.indexOf("\n statement;"),
writeStr.indexOf("}"), writeStr.length() - 1));
instance.setGuardedSection(sections);
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
}
public void testTranslateWithoutDuplicating() throws BadLocationException {
System.out.println("write with guard comments already in place");
String writeStr = "\nclass A {//"+"GEN-BEGIN:hu\n\n}//"+"GEN-END:hu\n";
String expStr = "\nclass A {//"+"GEN-BEGIN:hu\n\n}//"+"GEN-END:hu\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedReader.setKeepGuardCommentsForTest(true);
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createSimpleSection("hu", 1, writeStr.length() - 1));
instance.setGuardedSection(sections);
try {
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
} finally {
JavaGuardedReader.setKeepGuardCommentsForTest(false);
}
}
/**
* This tests renaming a section when guarded comments are kept. When the
* renaming is processed, there is still the original section name encoded
* in the guard comment that is part of the current section text (document).
* With the rename a new name needs to be written and the previous comment
* removed.
*/
public void testTranslateRenamed() throws BadLocationException {
System.out.println("write new name with old guard comments in place");
String writeStr = "\nclass A {//"+"GEN-BEGIN:oldName\n\n}//"+"GEN-END:hu\n";
String expStr = "\nclass A {//"+"GEN-BEGIN:hu\n\n}//"+"GEN-END:hu\n";
char[] writeBuff = writeStr.toCharArray();
JavaGuardedReader.setKeepGuardCommentsForTest(true);
JavaGuardedWriter instance = new JavaGuardedWriter();
JavaGuardedSectionsProvider provider = new JavaGuardedSectionsProvider(new Editor());
List<GuardedSection> sections = new ArrayList<GuardedSection>();
sections.add(provider.createSimpleSection("hu", 1, writeStr.length() - 1));
instance.setGuardedSection(sections);
try {
char[] result = instance.translate(writeBuff);
assertEquals(expStr, String.valueOf(result));
} finally {
JavaGuardedReader.setKeepGuardCommentsForTest(false);
}
}
}