blob: 207ee1b875702a25f9b0a9122eb3438e2a077c2d [file] [log] [blame]
Colin Cross3bbbdf32020-02-05 13:45:11 -08001// Copyright 2020 Google Inc. All rights reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package proptools
16
17import "testing"
18
19func TestPropertyNameForField(t *testing.T) {
20 tests := []struct {
21 name string
22 input string
23 want string
24 }{
25 {
26 name: "short",
27 input: "S",
28 want: "s",
29 },
30 {
31 name: "long",
32 input: "String",
33 want: "string",
34 },
35 {
36 name: "uppercase",
37 input: "STRING",
38 want: "STRING",
39 },
40 {
41 name: "mixed",
42 input: "StRiNg",
43 want: "stRiNg",
44 },
Colin Crossfc6efcb2020-02-05 17:10:18 -080045 {
46 name: "underscore",
47 input: "Under_score",
48 want: "under_score",
49 },
50 {
51 name: "uppercase underscore",
52 input: "UNDER_SCORE",
53 want: "UNDER_SCORE",
54 },
55 {
56 name: "x86",
57 input: "X86",
58 want: "x86",
59 },
60 {
61 name: "x86_64",
62 input: "X86_64",
63 want: "x86_64",
64 },
Colin Cross3bbbdf32020-02-05 13:45:11 -080065 }
66 for _, tt := range tests {
67 t.Run(tt.name, func(t *testing.T) {
68 if got := PropertyNameForField(tt.input); got != tt.want {
69 t.Errorf("PropertyNameForField(%v) = %v, want %v", tt.input, got, tt.want)
70 }
71 })
72 }
73}
74
75func TestFieldNameForProperty(t *testing.T) {
76 tests := []struct {
77 name string
78 input string
79 want string
80 }{
81 {
82 name: "short lowercase",
83 input: "s",
84 want: "S",
85 },
86 {
87 name: "short uppercase",
88 input: "S",
89 want: "S",
90 },
91 {
92 name: "long lowercase",
93 input: "string",
94 want: "String",
95 },
96 {
97 name: "long uppercase",
98 input: "STRING",
99 want: "STRING",
100 },
101 {
102 name: "mixed",
103 input: "StRiNg",
104 want: "StRiNg",
105 },
106 }
107 for _, tt := range tests {
108 t.Run(tt.name, func(t *testing.T) {
109 if got := FieldNameForProperty(tt.input); got != tt.want {
110 t.Errorf("FieldNameForProperty(%v) = %v, want %v", tt.input, got, tt.want)
111 }
112 })
113 }
114}