|
Groovy example source code file (WriterAppendTest.groovy)
The Groovy WriterAppendTest.groovy source code/* * Copyright 2003-2010 the original author or authors. * * Licensed 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.codehaus.groovy.runtime /** * Test Writer append and left shift methods in Groovy * * @author Joachim Baumann</a> * @version $Revision$ */ class WriterAppendTest extends GroovyTestCase { /** * The following instances are used in testing the file writes */ static text = """ <groovy> <things> <thing>Jelly Beans </things> <music> <tune>The 59th Street Bridge Song </music> <characters> <character name="Austin Powers"> <enemy>Dr. Evil <enemy>Mini Me </character> </characters> </groovy> """ static gPathResult = new XmlSlurper().parseText(text) static gPathWriteTo static defaultEncoding static UTF8_ENCODING static { StringWriter sw = new StringWriter() gPathResult.writeTo(sw) gPathWriteTo = sw.toString() UTF8_ENCODING = "UTF-8" defaultEncoding = System.getProperty("file.encoding") } // Our file instance def File file; void setUp() { // Setup guarantees us that we use a non-existent file file = File.createTempFile("unitTest", ".txt") assert file.exists() == true //println file.canonicalPath assert file.length() == 0L } void tearDown() { // we remove our temporary file def deleted = false while (deleted == false) deleted = file.delete() assert file.exists() == false } void testAppendStringWithEncoding() { def expected // test new file.withWriterAppend(UTF8_ENCODING) {writer -> writer.write(text) } expected = text assert hasContents(file, expected, UTF8_ENCODING) // test existing file.withWriterAppend(UTF8_ENCODING) {writer -> writer.write(text) } expected += text assert hasContents(file, expected, UTF8_ENCODING) } void testAppendWritableWithEncoding() { def expected // test new file.withWriterAppend(UTF8_ENCODING) {writer -> writer.write(gPathResult) } expected = gPathWriteTo assert hasContents(file, expected, UTF8_ENCODING) // test existing file.withWriterAppend(UTF8_ENCODING) {writer -> writer.write(gPathResult) } expected += gPathWriteTo assert hasContents(file, expected, UTF8_ENCODING) } void testLeftShiftStringWithEncoding() { def expected // test new file.withWriterAppend(UTF8_ENCODING) {writer -> writer << text } expected = text assert hasContents(file, expected, UTF8_ENCODING) // test existing file.withWriterAppend(UTF8_ENCODING) {writer -> writer << text } expected += text assert hasContents(file, expected, UTF8_ENCODING) } void testLeftShiftWritableWithEncoding() { def expected // test new file.withWriterAppend(UTF8_ENCODING) {writer -> writer << gPathResult } expected = gPathWriteTo assert hasContents(file, expected, UTF8_ENCODING) // test existing file.withWriterAppend(UTF8_ENCODING) {writer -> writer << gPathResult } expected += gPathWriteTo assert hasContents(file, expected, UTF8_ENCODING) } void testFileSetText() { // test new file.text = 'foobar' assert hasContents(file, 'foobar', defaultEncoding) // test existing file.text = 'foobarbaz' assert hasContents(file, 'foobarbaz', defaultEncoding) } /////////////////////////////////////// void testAppendStringDefaultEncoding() { def expected // test new file.withWriterAppend {writer -> writer.write(text) } expected = text assert hasContents(file, expected, defaultEncoding) // test existing file.withWriterAppend {writer -> writer.write(text) } expected += text assert hasContents(file, expected, defaultEncoding) } void testAppendWritableDefaultEncoding() { def expected // test new file.withWriterAppend {writer -> writer.write(gPathResult) } expected = gPathWriteTo assert hasContents(file, expected, defaultEncoding) // test existing file.withWriterAppend {writer -> writer.write(gPathResult) } expected += gPathWriteTo assert hasContents(file, expected, defaultEncoding) } void testLeftShiftStringDefaultEncoding() { def expected // test new file.withWriterAppend {writer -> writer << text } expected = text assert hasContents(file, expected, defaultEncoding) // test existing file.withWriterAppend {writer -> writer << text } expected += text assert hasContents(file, expected, defaultEncoding) } void testLeftShiftWritableDefaultEncoding() { def expected // test new file.withWriterAppend {writer -> writer << gPathResult } expected = gPathWriteTo assert hasContents(file, expected, defaultEncoding) // test existing file.withWriterAppend {writer -> writer << gPathResult } expected += gPathWriteTo assert hasContents(file, expected, defaultEncoding) } boolean hasContents(File f, String expected, String charSet) { // read contents the Java way byte[] buf = new byte[expected.length()]; def fileIS = new FileInputStream(file) fileIS.read(buf) fileIS.close() if (expected != new String(buf, charSet)) println "EX: " + expected + "------" + new String(buf, charSet) + "\n----" return expected == new String(buf, charSet) } } Other Groovy examples (source code examples)Here is a short list of links related to this Groovy WriterAppendTest.groovy source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.