Java tutorial
/* * Copyright 2015 Collective, Inc. * * 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 com.collective.celos.ci.testing.fixtures.convert; import com.collective.celos.ci.Utils; import com.collective.celos.ci.mode.test.TestRun; import com.collective.celos.ci.testing.structure.fixobject.*; import com.collective.celos.ci.testing.structure.tree.TreeObjectProcessor; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.apache.commons.io.IOUtils; import org.junit.Assert; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Map; import java.util.Set; import java.util.TreeSet; /** * Created by akonopko on 10/7/14. */ public class FixDirRecursiveConverterTest { public static final String CHECKSTR = "lowercase"; @Test public void testFixDirTreeConverter() throws Exception { FixDir dir = createDirWithFileContent("lowercase"); FixDirRecursiveConverter converter = new FixDirRecursiveConverter(new UpperCaseStringFixFileConverter()); FixDir transformed = converter.convert(null, dir); TreeObjectProcessorImpl holder = new TreeObjectProcessorImpl(); TreeObjectProcessor.process(transformed, holder); Set<Path> visited = Sets.newHashSet(Paths.get("dir1/dir1/file1"), Paths.get("dir1/dir1/file2"), Paths.get("dir1/dir2/file1"), Paths.get("dir1/dir2/file2"), Paths.get("dir1/file"), Paths.get("file")); Assert.assertEquals(holder.visited, visited); } private static class TreeObjectProcessorImpl extends TreeObjectProcessor<FixFsObject> { TreeSet<Path> visited = new TreeSet<>(); @Override public void process(Path path, FixFsObject ff) throws IOException { if (ff.isFile()) { String content = IOUtils.toString(ff.asFile().getContent()).toUpperCase(); Assert.assertEquals(content, CHECKSTR.toUpperCase()); visited.add(path); } } } private FixDir createDirWithFileContent(String fileContent) { FixDir dir1 = createDirWithSubdirsAndFile(fileContent); InputStream inputStream2 = IOUtils.toInputStream(fileContent); FixFile file = new FixFile(inputStream2); Map<String, FixFsObject> content = Maps.newHashMap(); content.put("dir1", dir1); content.put("file", file); return new FixDir(content); } private FixDir createOutDirWithSubdirsAndFile(String fileContent) { FixDir dir1 = getFixDirWithTwoFiles1(fileContent); FixDir dir2 = getFixDirWithTwoFiles1(fileContent); InputStream inputStream2 = IOUtils.toInputStream(fileContent); FixFile file = new FixFile(inputStream2); Map<String, FixFsObject> content = Maps.newHashMap(); content.put("dir1", dir1); content.put("dir2", dir2); content.put("file", file); return new FixDir(content); } private FixDir createDirWithSubdirsAndFile(String fileContent) { FixDir dir1 = getFixDirWithTwoFiles1(fileContent); FixDir dir2 = getFixDirWithTwoFiles1(fileContent); InputStream inputStream2 = IOUtils.toInputStream(fileContent); FixFile file = new FixFile(inputStream2); Map<String, FixFsObject> content = Maps.newHashMap(); content.put("dir1", dir1); content.put("dir2", dir2); content.put("file", file); return new FixDir(content); } private FixDir getFixDirWithTwoFiles1(String fileContent) { InputStream inputStream1 = IOUtils.toInputStream(fileContent); FixFile file1 = new FixFile(inputStream1); InputStream inputStream2 = IOUtils.toInputStream(fileContent); FixFile file2 = new FixFile(inputStream2); Map<String, FixFsObject> content1 = Maps.newHashMap(); content1.put("file1", file1); content1.put("file2", file2); return new FixDir(content1); } }