Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added tests for json_names option.
  • Loading branch information
zacharyvoase committed Jun 1, 2022
commit ebf8893b3837a3776ac3081ef1a10f56637cdb49
21 changes: 21 additions & 0 deletions test/_/json_names/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
load("@rules_proto//proto:defs.bzl", "proto_library")
load("//:index.bzl", "ts_proto_library")


SRCS = glob(["**/*.proto"])

proto_library(
name = "protos",
srcs = SRCS,
)

ts_proto_library(
name = "json_names",
outs = [
src.replace(".proto", ".ts")
for src in SRCS
],
features = ["json_names"],
deps = [":protos"],
visibility = ["//test/json_names:__pkg__"]
)
23 changes: 23 additions & 0 deletions test/_/json_names/json_names.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
syntax = "proto3";

enum ColorSpace {
RED_GREEN_BLUE = 0;
CYAN_YELLOW_MAGENTA_BLACK = 1;
}

message JsonNamesMessage {
message NestedMessage {
uint32 a_nested_integer = 1;
}

repeated string some_strings = 1;
int32 an_integer = 2;
NestedMessage a_nested_message = 3;
ColorSpace color_space = 4;
optional string an_optional_string = 5;

oneof mut_ex_field {
string a_single_string = 6;
int32 a_single_number = 7;
}
}
36 changes: 36 additions & 0 deletions test/json_names/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
load("//tools:diff_and_update.bzl", "diff_and_update")
load("@npm//@bazel/jasmine:index.bzl", "jasmine_node_test")
load("@npm//@bazel/typescript:index.bzl", "ts_project")

diff_and_update(
name = "diff_json_names",
srcs = [
"//test/_/json_names:json_names.ts",
],
checked = [ "json_names.ts" ]
)

ts_project(
name = "experimental",
srcs = glob(["*.ts"]),
tsconfig = {
"compilerOptions": {
"target": "ES2020",
"module": "CommonJS"
},
},
deps = [
"@npm//@types/jasmine",
"@npm//@types/node",
"@npm//@types/google-protobuf",
"@npm//google-protobuf",
"@npm//@grpc/grpc-js",
],
)

jasmine_node_test(
name = "test",
deps = [
":experimental",
],
)
308 changes: 308 additions & 0 deletions test/json_names/json_names.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,308 @@
/**
* Generated by the protoc-gen-ts. DO NOT EDIT!
* compiler version: 3.19.1
* source: test/_/json_names/json_names.proto
* git: https://github.com/thesayyn/protoc-gen-ts */
import * as pb_1 from "google-protobuf";
export enum ColorSpace {
RED_GREEN_BLUE = 0,
CYAN_YELLOW_MAGENTA_BLACK = 1
}
export class JsonNamesMessage extends pb_1.Message {
#one_of_decls = [[6, 7], [5]];
constructor(data?: any[] | ({
someStrings?: string[];
anInteger?: number;
aNestedMessage?: JsonNamesMessage.NestedMessage;
colorSpace?: ColorSpace;
} & (({
aSingleString?: string;
aSingleNumber?: never;
} | {
aSingleString?: never;
aSingleNumber?: number;
}) | ({
anOptionalString?: string;
})))) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1], this.#one_of_decls);
if (!Array.isArray(data) && typeof data == "object") {
if ("someStrings" in data && data.someStrings != undefined) {
this.someStrings = data.someStrings;
}
if ("anInteger" in data && data.anInteger != undefined) {
this.anInteger = data.anInteger;
}
if ("aNestedMessage" in data && data.aNestedMessage != undefined) {
this.aNestedMessage = data.aNestedMessage;
}
if ("colorSpace" in data && data.colorSpace != undefined) {
this.colorSpace = data.colorSpace;
}
if ("anOptionalString" in data && data.anOptionalString != undefined) {
this.anOptionalString = data.anOptionalString;
}
if ("aSingleString" in data && data.aSingleString != undefined) {
this.aSingleString = data.aSingleString;
}
if ("aSingleNumber" in data && data.aSingleNumber != undefined) {
this.aSingleNumber = data.aSingleNumber;
}
}
}
get someStrings() {
return pb_1.Message.getField(this, 1) as string[];
}
set someStrings(value: string[]) {
pb_1.Message.setField(this, 1, value);
}
get anInteger() {
return pb_1.Message.getField(this, 2) as number;
}
set anInteger(value: number) {
pb_1.Message.setField(this, 2, value);
}
get aNestedMessage() {
return pb_1.Message.getWrapperField(this, JsonNamesMessage.NestedMessage, 3) as JsonNamesMessage.NestedMessage;
}
set aNestedMessage(value: JsonNamesMessage.NestedMessage) {
pb_1.Message.setWrapperField(this, 3, value);
}
get colorSpace() {
return pb_1.Message.getField(this, 4) as ColorSpace;
}
set colorSpace(value: ColorSpace) {
pb_1.Message.setField(this, 4, value);
}
get anOptionalString() {
return pb_1.Message.getField(this, 5) as string;
}
set anOptionalString(value: string) {
pb_1.Message.setOneofField(this, 5, this.#one_of_decls[1], value);
}
get aSingleString() {
return pb_1.Message.getField(this, 6) as string;
}
set aSingleString(value: string) {
pb_1.Message.setOneofField(this, 6, this.#one_of_decls[0], value);
}
get aSingleNumber() {
return pb_1.Message.getField(this, 7) as number;
}
set aSingleNumber(value: number) {
pb_1.Message.setOneofField(this, 7, this.#one_of_decls[0], value);
}
get mut_ex_field() {
const cases: {
[index: number]: "none" | "a_single_string" | "a_single_number";
} = {
0: "none",
6: "a_single_string",
7: "a_single_number"
};
return cases[pb_1.Message.computeOneofCase(this, [6, 7])];
}
get _an_optional_string() {
const cases: {
[index: number]: "none" | "an_optional_string";
} = {
0: "none",
5: "an_optional_string"
};
return cases[pb_1.Message.computeOneofCase(this, [5])];
}
static fromObject(data: {
someStrings?: string[];
anInteger?: number;
aNestedMessage?: ReturnType<typeof JsonNamesMessage.NestedMessage.prototype.toObject>;
colorSpace?: ColorSpace;
anOptionalString?: string;
aSingleString?: string;
aSingleNumber?: number;
}) {
const message = new JsonNamesMessage({});
if (data.someStrings != null) {
message.someStrings = data.someStrings;
}
if (data.anInteger != null) {
message.anInteger = data.anInteger;
}
if (data.aNestedMessage != null) {
message.aNestedMessage = JsonNamesMessage.NestedMessage.fromObject(data.aNestedMessage);
}
if (data.colorSpace != null) {
message.colorSpace = data.colorSpace;
}
if (data.anOptionalString != null) {
message.anOptionalString = data.anOptionalString;
}
if (data.aSingleString != null) {
message.aSingleString = data.aSingleString;
}
if (data.aSingleNumber != null) {
message.aSingleNumber = data.aSingleNumber;
}
return message;
}
toObject() {
const data: {
someStrings?: string[];
anInteger?: number;
aNestedMessage?: ReturnType<typeof JsonNamesMessage.NestedMessage.prototype.toObject>;
colorSpace?: ColorSpace;
anOptionalString?: string;
aSingleString?: string;
aSingleNumber?: number;
} = {};
if (this.someStrings != null) {
data.someStrings = this.someStrings;
}
if (this.anInteger != null) {
data.anInteger = this.anInteger;
}
if (this.aNestedMessage != null) {
data.aNestedMessage = this.aNestedMessage.toObject();
}
if (this.colorSpace != null) {
data.colorSpace = this.colorSpace;
}
if (this.anOptionalString != null) {
data.anOptionalString = this.anOptionalString;
}
if (this.aSingleString != null) {
data.aSingleString = this.aSingleString;
}
if (this.aSingleNumber != null) {
data.aSingleNumber = this.aSingleNumber;
}
return data;
}
serialize(): Uint8Array;
serialize(w: pb_1.BinaryWriter): void;
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
const writer = w || new pb_1.BinaryWriter();
if (this.someStrings !== undefined)
writer.writeRepeatedString(1, this.someStrings);
if (this.anInteger !== undefined)
writer.writeInt32(2, this.anInteger);
if (this.aNestedMessage !== undefined)
writer.writeMessage(3, this.aNestedMessage, () => this.aNestedMessage.serialize(writer));
if (this.colorSpace !== undefined)
writer.writeEnum(4, this.colorSpace);
if (typeof this.anOptionalString === "string" && this.anOptionalString.length)
writer.writeString(5, this.anOptionalString);
if (typeof this.aSingleString === "string" && this.aSingleString.length)
writer.writeString(6, this.aSingleString);
if (this.aSingleNumber !== undefined)
writer.writeInt32(7, this.aSingleNumber);
if (!w)
return writer.getResultBuffer();
}
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): JsonNamesMessage {
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new JsonNamesMessage();
while (reader.nextField()) {
if (reader.isEndGroup())
break;
switch (reader.getFieldNumber()) {
case 1:
pb_1.Message.addToRepeatedField(message, 1, reader.readString());
break;
case 2:
message.anInteger = reader.readInt32();
break;
case 3:
reader.readMessage(message.aNestedMessage, () => message.aNestedMessage = JsonNamesMessage.NestedMessage.deserialize(reader));
break;
case 4:
message.colorSpace = reader.readEnum();
break;
case 5:
message.anOptionalString = reader.readString();
break;
case 6:
message.aSingleString = reader.readString();
break;
case 7:
message.aSingleNumber = reader.readInt32();
break;
default: reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): JsonNamesMessage {
return JsonNamesMessage.deserialize(bytes);
}
}
export namespace JsonNamesMessage {
export class NestedMessage extends pb_1.Message {
#one_of_decls = [];
constructor(data?: any[] | {
aNestedInteger?: number;
}) {
super();
pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
if (!Array.isArray(data) && typeof data == "object") {
if ("aNestedInteger" in data && data.aNestedInteger != undefined) {
this.aNestedInteger = data.aNestedInteger;
}
}
}
get aNestedInteger() {
return pb_1.Message.getField(this, 1) as number;
}
set aNestedInteger(value: number) {
pb_1.Message.setField(this, 1, value);
}
static fromObject(data: {
aNestedInteger?: number;
}) {
const message = new NestedMessage({});
if (data.aNestedInteger != null) {
message.aNestedInteger = data.aNestedInteger;
}
return message;
}
toObject() {
const data: {
aNestedInteger?: number;
} = {};
if (this.aNestedInteger != null) {
data.aNestedInteger = this.aNestedInteger;
}
return data;
}
serialize(): Uint8Array;
serialize(w: pb_1.BinaryWriter): void;
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
const writer = w || new pb_1.BinaryWriter();
if (this.aNestedInteger !== undefined)
writer.writeUint32(1, this.aNestedInteger);
if (!w)
return writer.getResultBuffer();
}
static deserialize(bytes: Uint8Array | pb_1.BinaryReader): NestedMessage {
const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new NestedMessage();
while (reader.nextField()) {
if (reader.isEndGroup())
break;
switch (reader.getFieldNumber()) {
case 1:
message.aNestedInteger = reader.readUint32();
break;
default: reader.skipField();
}
}
return message;
}
serializeBinary(): Uint8Array {
return this.serialize();
}
static deserializeBinary(bytes: Uint8Array): NestedMessage {
return NestedMessage.deserialize(bytes);
}
}
}
Loading