Skip to content

Commit c1541ef

Browse files
committed
refactor test cases
1 parent edb87f8 commit c1541ef

3 files changed

Lines changed: 76 additions & 71 deletions

File tree

src/method_generator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class Field:
3535

3636

3737
def generate_fields_block(fields: List[Field]) -> str:
38-
declaration: list[str] = []
38+
declaration = []
3939
for field in fields:
4040
declaration.append(generate_field_declaration(field))
4141

@@ -61,7 +61,7 @@ def generate_field_declaration(field: Field) -> str:
6161

6262

6363
def generate_getters_and_setters(fields: List[Field]) -> str:
64-
methods: list[str] = []
64+
methods = []
6565
for field in fields:
6666
methods.append(generate_getter(field))
6767
methods.append(generate_setter(field))

tests/reference_data.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from src.method_generator import Field
2+
3+
field_exampleAttribute_int = Field(name="exampleAttribute", type="int", description="javadoc description")
4+
field_someName_String = Field(name="someName", type="String")
5+
field_customData_CustomObject = Field(name="customData", type="CustomObject", description="another javadoc description")
6+
7+
expected_getExampleAttribute_int = """
8+
public int getExampleAttribute() {
9+
return exampleAttribute;
10+
}"""
11+
12+
expected_setExampleAttribute_int = """
13+
public void setExampleAttribute(int exampleAttribute) {
14+
this.exampleAttribute = exampleAttribute;
15+
}"""
16+
17+
expected_getSomeName_String = """
18+
public String getSomeName() {
19+
return someName;
20+
}"""
21+
22+
expected_setSomeName_String = """
23+
public void setSomeName(String someName) {
24+
this.someName = someName;
25+
}"""
26+
27+
expected_getCustomData_CustomObject = """
28+
public CustomObject getCustomData() {
29+
return customData;
30+
}"""
31+
32+
expected_setCustomData_CustomObject = """
33+
public void setCustomData(CustomObject customData) {
34+
this.customData = customData;
35+
}"""

tests/test_method_generator.py

Lines changed: 39 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22

3-
from src.method_generator import generate_getter, Field, generate_setter, generate_getters_and_setters, \
4-
generate_field_declaration, generate_fields_block
3+
from tests.reference_data import *
4+
from src.method_generator import *
55

66
JAVA_KEYWORDS = {
77
"abstract", "assert", "boolean", "break", "byte", "case", "catch",
@@ -27,102 +27,75 @@
2727

2828
MALFORMED_IDENTIFIERS = {"3", "abc-d", "gf*d"}
2929

30+
illegal_names = JAVA_KEYWORDS | JAVA_BUILTIN_TYPES | JAVA_LITERALS | EMPTY_NAMES | MALFORMED_IDENTIFIERS
31+
3032

3133
def test_generate_getter_integer():
32-
attr = Field(
33-
name="exampleAttribute",
34-
type="int"
35-
)
36-
expected = """
37-
public int getExampleAttribute() {
38-
return exampleAttribute;
39-
}"""
40-
assert (generate_getter(attr) == expected)
34+
attr = field_exampleAttribute_int
35+
36+
assert (generate_getter(attr) == expected_getExampleAttribute_int)
4137

4238

4339
def test_generate_getter_string():
44-
attr = Field(name="someName", type="String")
45-
expected = """
46-
public String getSomeName() {
47-
return someName;
48-
}"""
49-
assert (generate_getter(attr) == expected)
40+
attr = field_someName_String
41+
42+
assert (generate_getter(attr) == expected_getSomeName_String)
5043

5144

5245
def test_generate_getter_custom_object():
53-
attr = Field(name="customData", type="CustomObject")
54-
expected = """
55-
public CustomObject getCustomData() {
56-
return customData;
57-
}"""
58-
assert (generate_getter(attr) == expected)
46+
attr = field_customData_CustomObject
47+
48+
assert (generate_getter(attr) == expected_getCustomData_CustomObject)
5949

6050

6151
def test_generate_getter_invalid_name():
62-
illegal_names = JAVA_KEYWORDS | JAVA_BUILTIN_TYPES | JAVA_LITERALS | EMPTY_NAMES | MALFORMED_IDENTIFIERS
6352
for name in illegal_names:
6453
attr = Field(name=name, type="String")
6554
with pytest.raises(ValueError):
6655
generate_getter(attr)
6756

6857

6958
def test_generate_setter_integer():
70-
attr = Field(name="exampleAttribute", type="int")
71-
expected = """
72-
public void setExampleAttribute(int exampleAttribute) {
73-
this.exampleAttribute = exampleAttribute;
74-
}"""
75-
assert (generate_setter(attr) == expected)
59+
attr = field_exampleAttribute_int
60+
61+
assert (generate_setter(attr) == expected_setExampleAttribute_int)
7662

7763

7864
def test_generate_setter_string():
79-
attr = Field(name="someName", type="String")
80-
expected = """
81-
public void setSomeName(String someName) {
82-
this.someName = someName;
83-
}"""
84-
assert (generate_setter(attr) == expected)
65+
attr = field_someName_String
66+
67+
assert (generate_setter(attr) == expected_setSomeName_String)
8568

8669

8770
def test_generate_setter_custom_object():
88-
attr = Field(name="customData", type="CustomObject")
89-
expected = """
90-
public void setCustomData(CustomObject customData) {
91-
this.customData = customData;
92-
}"""
93-
assert (generate_setter(attr) == expected)
71+
attr = field_customData_CustomObject
72+
73+
assert (generate_setter(attr) == expected_setCustomData_CustomObject)
9474

9575

9676
def test_generate_setter_invalid_name():
97-
illegal_names = JAVA_KEYWORDS | JAVA_BUILTIN_TYPES | JAVA_LITERALS | EMPTY_NAMES | MALFORMED_IDENTIFIERS
9877
for name in illegal_names:
9978
attr = Field(name=name, type="String")
10079
with pytest.raises(ValueError):
10180
generate_setter(attr)
10281

10382

10483
def test_generate_getters_and_setters():
105-
attr1 = Field(name="exampleAttribute", type="int")
106-
attr2 = Field(name="customData", type="CustomObject")
84+
attr1 = field_exampleAttribute_int
85+
attr2 = field_customData_CustomObject
10786
attributes = [attr1, attr2]
108-
expected = """
109-
public int getExampleAttribute() {
110-
return exampleAttribute;
111-
}\n\n
112-
public void setExampleAttribute(int exampleAttribute) {
113-
this.exampleAttribute = exampleAttribute;
114-
}\n\n
115-
public CustomObject getCustomData() {
116-
return customData;
117-
}\n\n
118-
public void setCustomData(CustomObject customData) {
119-
this.customData = customData;
120-
}"""
87+
88+
expected = "\n\n".join([
89+
expected_getExampleAttribute_int,
90+
expected_setExampleAttribute_int,
91+
expected_getCustomData_CustomObject,
92+
expected_setCustomData_CustomObject
93+
])
12194
assert generate_getters_and_setters(attributes) == expected
12295

12396

12497
def test_generate_field_declaration():
125-
attr = Field(name="exampleAttribute", type="int", description="javadoc description")
98+
attr = field_exampleAttribute_int
12699
expected = """
127100
/**
128101
* javadoc description
@@ -133,34 +106,31 @@ def test_generate_field_declaration():
133106

134107

135108
def test_generate_field_declaration_no_description():
136-
attr = Field(name="customData", type="CustomObject")
109+
attr = field_someName_String
137110
expected = """
138-
private CustomObject customData;"""
111+
private String someName;"""
139112

140113
assert generate_field_declaration(attr) == expected
141114

142115

143116
def test_generate_field_declaration_invalid_name():
144-
illegal_names = JAVA_KEYWORDS | JAVA_BUILTIN_TYPES | JAVA_LITERALS | EMPTY_NAMES | MALFORMED_IDENTIFIERS
145117
for name in illegal_names:
146118
attr = Field(name=name, type="String")
147119
with pytest.raises(ValueError):
148120
generate_field_declaration(attr)
149121

150122

151123
def test_generate_fields_block():
152-
attr1 = Field(name="exampleAttribute", type="int", description="javadoc description")
153-
attr2 = Field(name="someName", type="String")
154-
attr3 = Field(name="customData", type="CustomObject", description="another javadoc description")
124+
attr1 = field_exampleAttribute_int
125+
attr2 = field_someName_String
126+
attr3 = field_customData_CustomObject
155127
attributes = [attr1, attr2, attr3]
156128
expected = """
157129
/**
158130
* javadoc description
159131
*/
160-
private int exampleAttribute;
161-
162-
private String someName;
163-
132+
private int exampleAttribute;\n
133+
private String someName;\n
164134
/**
165135
* another javadoc description
166136
*/

0 commit comments

Comments
 (0)