Package com.googlecode.goclipse.tooling.env

Source Code of com.googlecode.goclipse.tooling.env.GoEnvironmentTest

/*******************************************************************************
* Copyright (c) 2014, 2014 Bruno Medeiros and other Contributors.
* 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:
*     Bruno Medeiros - initial API and implementation
*******************************************************************************/
package com.googlecode.goclipse.tooling.env;

import static melnorme.utilbox.core.Assert.AssertNamespace.assertTrue;

import java.io.File;
import java.nio.file.Path;
import java.util.HashSet;

import melnorme.utilbox.misc.MiscUtil;

import org.junit.Test;

import com.googlecode.goclipse.tooling.CommonGoToolingTest;
import com.googlecode.goclipse.tooling.GoPackageName;

public class GoEnvironmentTest extends CommonGoToolingTest {
 
  private static final Path WS_BAR = TESTS_WORKDIR.resolve("WorkspaceBar");
  private static final Path WS_FOO = TESTS_WORKDIR.resolve("WorkspaceFoo");
 
  public static GoPackageName gopackage(String pathString) {
    return GoPackageName.fromPath(MiscUtil.createPathOrNull(pathString));
  }
 
  @Test
  public void test_GoPath() throws Exception { test_GoPath$(); }
  public void test_GoPath$() throws Exception {
    GoPath goPath = new GoPath(WS_FOO + File.pathSeparator + WS_BAR);
    
    assertAreEqual(goPath.findGoPathEntry(WS_FOO.resolve("xxx")), WS_FOO);
    assertAreEqual(goPath.findGoPathEntry(WS_BAR.resolve("xxx")), WS_BAR);
    assertAreEqual(goPath.findGoPathEntry(TESTS_WORKDIR.resolve("xxx")), null);
   
    assertAreEqual(goPath.findGoPackageForSourceFile(WS_FOO.resolve("xxx/m.go")), null);
    assertAreEqual(goPath.findGoPackageForSourceFile(WS_FOO.resolve("src/xxx/m.go")), gopackage("xxx"));
    assertAreEqual(goPath.findGoPackageForSourceFile(WS_FOO.resolve("src/xxx/zzz/m.go")), gopackage("xxx/zzz"));
    assertAreEqual(goPath.findGoPackageForSourceFile(WS_FOO.resolve("src/m.go")), null);
    assertAreEqual(goPath.findGoPackageForSourceFile(WS_BAR.resolve("src/xxx/m.go")), gopackage("xxx"));
    assertAreEqual(goPath.findGoPackageForSourceFile(WS_BAR.resolve("src/src/src/m.go")), gopackage("src/src"));
    assertAreEqual(goPath.findGoPackageForSourceFile(TESTS_WORKDIR.resolve("src/xxx/m.go")), null);
   
    // Test empty case
    goPath = new GoPath("");
    assertTrue(goPath.isEmpty());
    assertTrue(goPath.getGoPathEntries().size() == 0);
    assertEquals(goPath.getGoPathWorkspaceString(), "");
  }
 
  @Test
  public void test() throws Exception { test$(); }
  public void test$() throws Exception {
   
    GoEnvironment goEnv = SAMPLE_GOEnv_1;
   
    assertAreEqual(goEnv.getGoOS_GoArch_segment(), "windows_386");
   
    Path goRootSrc = goEnv.getGoRoot_Path().resolve("src/pkg");
   
    assertAreEqual(goEnv.findGoPackageForSourceModule(goRootSrc.resolve("pack/m.go")), gopackage("pack"));
    assertAreEqual(goEnv.findGoPackageForSourceModule(goRootSrc.resolve("pack/foo/m.go")), gopackage("pack/foo"));
    assertAreEqual(goEnv.findGoPackageForSourceModule(goRootSrc.resolve("../foo/m.go")), null);
  }
 
 
  @Test
  public void testFindSourcePackage() throws Exception { testFindSourcePackage$(); }
  public void testFindSourcePackage$() throws Exception {
   
    GoPath goPath = new GoPath(TR_SAMPLE_GOPATH_ENTRY.toString());
   
    HashSet<GoPackageName> sampleGoPathEntry_result = hashSet(
      gopackage("samplePackage"),
      gopackage("samplePackage/subpack"),
      gopackage("samplePackage/subpack/bar"),
      gopackage("samplePackage2/xxx")
    );
   
    assertEquals(goPath.findSourcePackages(TR_SAMPLE_GOPATH_ENTRY), sampleGoPathEntry_result);
    assertEquals(goPath.findSourcePackages(TR_SAMPLE_GOPATH_ENTRY.resolve("src")), sampleGoPathEntry_result);
   
    assertEquals(goPath.findSourcePackages(TR_SAMPLE_GOPATH_ENTRY.resolve("src/samplePackage")), hashSet(
      gopackage("samplePackage"),
      gopackage("samplePackage/subpack"),
      gopackage("samplePackage/subpack/bar")
    ));
   
    assertEquals(goPath.findSourcePackages(TR_SAMPLE_GOPATH_ENTRY.resolve("src/samplePackage2")), hashSet(
      gopackage("samplePackage2/xxx")
    ));
   
     // Test no results
    assertEquals(goPath.findSourcePackages(TR_SAMPLE_GOPATH_ENTRY.resolve("..").normalize()), hashSet());
  }
 
}
TOP

Related Classes of com.googlecode.goclipse.tooling.env.GoEnvironmentTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.