Skip to content

Commit

Permalink
Merge pull request #80 from trilogy-group/master
Browse files Browse the repository at this point in the history
Expose IsTest and GetLangaugeType methods  & Fix test cases for Java Bindings
  • Loading branch information
bzz committed Mar 24, 2022
2 parents 6f052a7 + bd1597a commit f1e62ad
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 1 deletion.
20 changes: 20 additions & 0 deletions java/src/main/java/tech/sourced/enry/Enry.java
Expand Up @@ -237,4 +237,24 @@ public static synchronized boolean isGenerated(String path, byte[] content) {
public static synchronized String getColor(String language) {
return toJavaString(nativeLib.GetColor(toGoString(language)));
}

/**
* Reports whether the given path is a test path or not.
*
* @param path of the file or directory
* @return whether it's test or not
*/
public static synchronized boolean isTest(String path) {
return toJavaBool(nativeLib.IsTest(toGoString(path)));
}

/**
* Returns type for given language.
*
* @param language of the file
* @return type (data, programming, markup, prose)
*/
public static synchronized String getLanguageType(String language) {
return toJavaString(nativeLib.GetLanguageType(toGoString(language)));
}
}
15 changes: 14 additions & 1 deletion java/src/test/java/tech/sourced/enry/EnryTest.java
Expand Up @@ -120,7 +120,7 @@ public void getLanguages() {
"extern int foo(void *bar);";

String[] result = Enry.getLanguages("foo.h", code.getBytes());
String[] expected = {"C", "C++", "Objective-C"};
String[] expected = {"C"};
assertArrayEquals(expected, result);
}

Expand Down Expand Up @@ -169,6 +169,19 @@ public void getColor() {
);
}

@Test
public void isTest() {
assertTrue(Enry.isTest("test_foo.py"));
assertTrue(Enry.isTest("test/java/tech/sourced/enry/EnryTest.java"));
assertFalse(Enry.isTest("foo.py"));
assertFalse(Enry.isTest("src/java/foo.java"));
}

@Test
public void getLanguageType() {
assertEquals("data", Enry.getLanguageType("CSV"));
}

void assertGuess(String language, boolean safe, Guess guess) {
assertEquals(language, guess.language);
assertEquals(safe, guess.safe);
Expand Down
11 changes: 11 additions & 0 deletions shared/enry.go
Expand Up @@ -5,6 +5,7 @@ package main

import "C"
import "github.com/go-enry/go-enry/v2"
import "github.com/go-enry/go-enry/v2/data"

//export GetLanguage
func GetLanguage(filename string, content []byte) string {
Expand Down Expand Up @@ -136,6 +137,16 @@ func GetColor(language string) string {
return enry.GetColor(language)
}

//export IsTest
func IsTest(path string) bool {
return enry.IsTest(path)
}

//export GetLanguageType
func GetLanguageType(language string) string {
return data.Type(enry.GetLanguageType(language)).String()
}

func strSliceCopy(result *[]*C.char, slice []string) {
for _, str := range slice {
*result = append(*result, C.CString(str))
Expand Down

0 comments on commit f1e62ad

Please sign in to comment.