github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/pkg/plugin/builtin/java_plugin_test.go (about)

     1  package builtin_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stackb/rules_proto/pkg/plugin/builtin"
     7  	"github.com/stackb/rules_proto/pkg/plugintest"
     8  )
     9  
    10  func TestJavaPlugin(t *testing.T) {
    11  	plugintest.Cases(t, &builtin.JavaPlugin{}, map[string]plugintest.Case{
    12  		"empty file": {
    13  			Input: "",
    14  			Directives: plugintest.WithDirectives(
    15  				"proto_plugin", "java implementation builtin:java",
    16  			),
    17  			PluginName: "java",
    18  			Configuration: plugintest.WithConfiguration(
    19  				plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:java"),
    20  				plugintest.WithOutputs("test.srcjar"),
    21  				plugintest.WithOut("test.srcjar"),
    22  			),
    23  		},
    24  		"message with a package": {
    25  			Input: "package a;\n\nmessage M{}",
    26  			Directives: plugintest.WithDirectives(
    27  				"proto_plugin", "java implementation builtin:java",
    28  			),
    29  			PluginName: "java",
    30  			Configuration: plugintest.WithConfiguration(
    31  				plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:java"),
    32  				plugintest.WithOutputs("test.srcjar"),
    33  				plugintest.WithOut("test.srcjar"),
    34  			),
    35  		},
    36  		"relative package location": {
    37  			Rel:   "src/main/java/foo",
    38  			Input: "package a;\n\nmessage M{}",
    39  			Directives: plugintest.WithDirectives(
    40  				"proto_plugin", "java implementation builtin:java",
    41  			),
    42  			PluginName: "java",
    43  			Configuration: plugintest.WithConfiguration(
    44  				plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:java"),
    45  				plugintest.WithOutputs("src/main/java/foo/test.srcjar"),
    46  				plugintest.WithOut("src/main/java/foo/test.srcjar"),
    47  			),
    48  		},
    49  	})
    50  }