/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 2015 Oracle and/or its affiliates. All rights reserved.
*
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common
* Development and Distribution License("CDDL") (collectively, the
* "License"). You may not use this file except in compliance with the
* License. You can obtain a copy of the License at
* http://www.netbeans.org/cddl-gplv2.html
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
* specific language governing permissions and limitations under the
* License. When distributing the software, include this License Header
* Notice in each file and include the License file at
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the
* License Header, with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* If you wish your version of this file to be governed by only the CDDL
* or only the GPL Version 2, indicate your decision by adding
* "[Contributor] elects to include this software in this distribution
* under the [CDDL or GPL Version 2] license." If you do not indicate a
* single choice of license, a recipient has the option to distribute
* your version of this file under either the CDDL, the GPL Version 2 or
* to extend the choice of license to its licensees as provided above.
* However, if you add GPL Version 2 code and therefore, elected the GPL
* Version 2 license, then the option applies only if the new code is
* made subject to such option by the copyright holder.
*
* Contributor(s):
*
* Portions Copyrighted 2015 Sun Microsystems, Inc.
*/
package org.netbeans.modules.php.cake3.dotcake;
import java.io.File;
import java.io.IOException;
import java.util.List;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.netbeans.junit.NbTestCase;
import org.netbeans.modules.php.cake3.dotcake.Dotcake.BuildPathCategory;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileSystem;
import org.openide.filesystems.FileUtil;
/**
*
* @author junichi11
*/
public class DotcakeTest extends NbTestCase {
private FileObject dotcakeDirectory;
public DotcakeTest(String name) {
super(name);
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
@Override
public void setUp() {
if (dotcakeDirectory == null) {
File dataDir = getDataDir();
FileObject dataDirectory = FileUtil.toFileObject(dataDir);
dotcakeDirectory = dataDirectory.getFileObject("dotcake");
}
}
@After
@Override
public void tearDown() {
dotcakeDirectory = null;
}
/**
* Test of fromJson method, of class Dotcake.
*
* @throws java.io.IOException
*/
@Test
public void testFromJson() throws IOException {
FileSystem fileSystem = FileUtil.createMemoryFileSystem();
FileObject root = fileSystem.getRoot();
FileObject dotcakeFile = dotcakeDirectory.getFileObject(".cake");
// normal .cake file
Dotcake dotcake = Dotcake.fromJson(dotcakeFile);
assertNotNull(dotcake);
if (dotcakeFile != null) {
dotcakeFile = null;
}
// empty file
dotcakeFile = root.createData(".cake");
dotcake = Dotcake.fromJson(dotcakeFile);
assertNull(dotcake);
if (dotcakeFile != null) {
dotcakeFile.delete();
dotcakeFile = null;
}
dotcakeFile = root.createData(".dotcake");
dotcake = Dotcake.fromJson(dotcakeFile);
assertNull(dotcake);
if (dotcakeFile != null) {
dotcakeFile.delete();
dotcakeFile = null;
}
dotcake = Dotcake.fromJson(null);
assertNull(dotcake);
if (dotcakeFile != null) {
dotcakeFile.delete();
dotcakeFile = null;
}
}
/**
* Test of isDotcake method, of class Dotcake.
*
* @throws java.io.IOException
*/
@Test
public void testIsDotcake() throws IOException {
FileSystem fileSystem = FileUtil.createMemoryFileSystem();
FileObject root = fileSystem.getRoot();
FileObject dotcakeFile = root.createData(".cake");
assertTrue(Dotcake.isDotcake(dotcakeFile));
if (dotcakeFile != null) {
dotcakeFile.delete();
dotcakeFile = null;
}
dotcakeFile = root.createData(".cake2");
assertFalse(Dotcake.isDotcake(dotcakeFile));
if (dotcakeFile != null) {
dotcakeFile.delete();
dotcakeFile = null;
}
assertFalse(Dotcake.isDotcake(null));
}
/**
* Test of getBuildPaths method, of class Dotcake.
*/
@Test
public void testGetBuildPaths() {
FileObject dotcakeFile = dotcakeDirectory.getFileObject(".cake");
Dotcake dotcake = Dotcake.fromJson(dotcakeFile);
List<String> result = dotcake.getBuildPaths(BuildPathCategory.TABLES);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.ENTITIES);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.BEHAVIORS);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.CONTROLLERS);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.COMPONENTS);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.TEMPLATES);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.VIEWS);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.HELPERS);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.CONSOLES);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.SHELLS);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.TASKS);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.LOCALES);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.PLUGINS);
assertTrue(!result.isEmpty());
result = dotcake.getBuildPaths(BuildPathCategory.UNKNOWN);
assertTrue(result.isEmpty());
result = dotcake.getBuildPaths(null);
assertTrue(result.isEmpty());
}
}