55 class TestGenerator :
public CodeGenerator {
61 const std::string& parameter, GeneratorContext* context,
64 TryInsert(filename,
"outer_class_scope", context);
65 TryInsert(filename,
"class_scope:foo.Bar", context);
66 TryInsert(filename,
"class_scope:foo.Bar.Baz", context);
67 TryInsert(filename,
"builder_scope:foo.Bar", context);
68 TryInsert(filename,
"builder_scope:foo.Bar.Baz", context);
69 TryInsert(filename,
"enum_scope:foo.Qux", context);
75 GeneratorContext* context)
const {
76 std::unique_ptr<io::ZeroCopyOutputStream>
output(
77 context->OpenForInsert(filename, insertion_point));
78 io::Printer printer(
output.get(),
'$');
79 printer.Print(
"// inserted $name$\n",
"name", insertion_point);
86 TEST(JavaPluginTest, PluginTest) {
88 "syntax = \"proto2\";\n"
90 "option java_package = \"\";\n"
91 "option java_outer_classname = \"Test\";\n"
95 "enum Qux { BLAH = 1; }\n",
98 CommandLineInterface cli;
99 cli.SetInputsAreProtoPathRelative(
true);
101 JavaGenerator java_generator;
102 TestGenerator test_generator;
103 cli.RegisterGenerator(
"--java_out", &java_generator,
"");
104 cli.RegisterGenerator(
"--test_out", &test_generator,
"");
110 const char* argv[] = {
"protoc", proto_path.c_str(), java_out.c_str(),
111 test_out.c_str(),
"test.proto"};