Skip to content

Commit 38fe0b4

Browse files
committed
employee data faker usage
1 parent b1ddc05 commit 38fe0b4

File tree

9 files changed

+91
-68
lines changed

9 files changed

+91
-68
lines changed

‎DBDataFaker.iml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@
1010
</content>
1111
<orderEntry type="inheritedJdk" />
1212
<orderEntry type="sourceFolder" forTests="false" />
13-
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
1413
<orderEntry type="library" name="Maven: com.github.javafaker:javafaker:0.15" level="project" />
1514
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.5" level="project" />
1615
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:android:1.20" level="project" />
1716
<orderEntry type="library" name="Maven: com.github.mifmif:generex:1.0.2" level="project" />
1817
<orderEntry type="library" name="Maven: dk.brics.automaton:automaton:1.11-8" level="project" />
18+
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
19+
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
1920
</component>
2021
</module>

‎README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## DBDataFaker
2+
Generates inserts query for <br />
3+
- [x] Employee
4+
- [ ] Department (to be implemented)
5+
- [ ] Instructor (to be implemented)
6+
- [ ] Student (to be implemented)
7+
- [ ] Course (to be implemented)
8+
- [ ] and so on ...
9+
10+
## Usage
11+
**Employee demo**
12+
```java
13+
public class App {
14+
public static void main(String[] args) {
15+
// Employee demo
16+
int N = 10; // number of rows
17+
for (int i = 0; i < N; i++) {
18+
System.out.println(new ConcreteEmployeeBuilder()
19+
.buildFirstName()
20+
.buildLastName()
21+
.buildAddress()
22+
.build().toString());
23+
}
24+
}
25+
}
26+
```
27+
This generates 10 rows of employee's insert queries.
28+
```sql
29+
insert into employee (first_name,last_name,address) values ("Cara","Cremin","515 Kuvalis Locks, Morriston, PE");
30+
insert into employee (first_name,last_name,address) values ("Jarrell","Kunde","20356 Carey Flats, South Alanis, QC");
31+
insert into employee (first_name,last_name,address) values ("Clark","Lowe","86216 Ethyl Village, South Alexzanderstad, NT");
32+
insert into employee (first_name,last_name,address) values ("Sonya","Beer","531 Bruen Viaduct, Hickleberg, NL");
33+
insert into employee (first_name,last_name,address) values ("Liam","Hyatt","295 Xzavier Plain, Lake Keegan, QC");
34+
insert into employee (first_name,last_name,address) values ("Romaine","Wyman","9160 Green Way, North Lenna, QC");
35+
insert into employee (first_name,last_name,address) values ("Katlynn","Schmeler","611 Pete Curve, Bodemouth, PE");
36+
insert into employee (first_name,last_name,address) values ("Vivien","Schuppe","15766 Orn Throughway, Lydiafort, ON");
37+
insert into employee (first_name,last_name,address) values ("Jeromy","Brakus","9058 Shields Ranch, Anthonyfort, PE");
38+
insert into employee (first_name,last_name,address) values ("Roselyn","Kris","312 Felipa Route, Fritschbury, BC");
39+
```

‎pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515
</properties>
1616

1717
<dependencies>
18-
<dependency>
19-
<groupId>junit</groupId>
20-
<artifactId>junit</artifactId>
21-
<version>3.8.1</version>
22-
<scope>test</scope>
23-
</dependency>
2418
<dependency>
2519
<groupId>com.github.javafaker</groupId>
2620
<artifactId>javafaker</artifactId>
2721
<version>0.15</version>
2822
</dependency>
23+
<dependency>
24+
<groupId>junit</groupId>
25+
<artifactId>junit</artifactId>
26+
<version>4.12</version>
27+
<scope>test</scope>
28+
</dependency>
2929
</dependencies>
3030
</project>
Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
package com.dbdatafaker;
22

33
import com.dbdatafaker.employee.ConcreteEmployeeBuilder;
4-
import com.dbdatafaker.employee.IEmployeeBuilder;
54

65
public class App {
76

87
public static void main(String[] args) {
98

10-
IEmployeeBuilder b = new ConcreteEmployeeBuilder();
11-
b.buildAddress();
12-
b.buildFullName();
13-
System.out.println(b.build().toString());
9+
int N = 10;
10+
for (int i = 0; i < N; i++) {
11+
System.out.println(new ConcreteEmployeeBuilder()
12+
.buildFirstName()
13+
.buildLastName()
14+
.buildAddress()
15+
.build().toString());
16+
}
17+
1418

1519
}
1620
}

‎src/main/java/com/dbdatafaker/employee/ConcreteEmployeeBuilder.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.dbdatafaker.employee;
22

33
public class ConcreteEmployeeBuilder implements IEmployeeBuilder {
4-
private FakeEmployeeDataGenerator generate;
4+
private FakeEmployeeGenerator generate;
55
private Employee employee;
66

77
public ConcreteEmployeeBuilder() {
88
this.employee = new Employee();
9-
this.generate = new FakeEmployeeDataGenerator();
9+
this.generate = new FakeEmployeeGenerator();
1010
}
1111

1212
public IEmployeeBuilder buildFirstName() {
@@ -19,11 +19,6 @@ public IEmployeeBuilder buildLastName() {
1919
return this;
2020
}
2121

22-
public IEmployeeBuilder buildFullName() {
23-
employee.setFullName(this.generate.generateFullName());
24-
return this;
25-
}
26-
2722
public IEmployeeBuilder buildAddress() {
2823
employee.setAddress(this.generate.generateAddress());
2924
return this;

‎src/main/java/com/dbdatafaker/employee/Employee.java

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ public class Employee {
44

55
private String firstName;
66
private String lastName;
7-
private String fullName;
87
private String address;
98

109
void setFirstName(String firstName) {
@@ -19,17 +18,29 @@ void setAddress(String address) {
1918
this.address = address;
2019
}
2120

22-
void setFullName(String fullName) {
23-
this.fullName = fullName;
24-
}
25-
2621
@Override
2722
public String toString() {
28-
return "Employee{" +
29-
"firstName='" + firstName + '\'' +
30-
", lastName='" + lastName + '\'' +
31-
", fullName='" + fullName + '\'' +
32-
", address='" + address + '\'' +
33-
'}';
23+
String first = "";
24+
String last = "";
25+
String ad = "";
26+
if (firstName != null) {
27+
first = "first_name,";
28+
}
29+
if (lastName != null) {
30+
last = "last_name,";
31+
}
32+
if (address != null) {
33+
ad = "address";
34+
}
35+
String q = "insert into employee (" + first + last + ad + ") values (";
36+
String out = q + "\"" + firstName + "\"" + "," +
37+
"\"" + lastName + "\"" + "," +
38+
"\"" + address + "\"" + ");";
39+
40+
String s2 = out.replaceAll(",\\)", ")");
41+
String s3 = s2.replaceAll("\"null\",", "");
42+
return s3.replaceAll(",\"null\"\\);", ")");
43+
44+
3445
}
3546
}

‎src/main/java/com/dbdatafaker/employee/FakeEmployeeDataGenerator.java renamed to ‎src/main/java/com/dbdatafaker/employee/FakeEmployeeGenerator.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package com.dbdatafaker.employee;
22

3-
import java.util.Locale;
4-
53
import com.github.javafaker.Faker;
64

7-
class FakeEmployeeDataGenerator {
5+
import java.util.Locale;
6+
7+
class FakeEmployeeGenerator {
88

9+
// TODO set local dynamically in runtime
910
private Faker faker = new Faker(new Locale("en-CA"));
1011

11-
FakeEmployeeDataGenerator() {
12+
FakeEmployeeGenerator() {
1213

1314
}
1415

@@ -20,10 +21,6 @@ String generateLastName() {
2021
return faker.name().lastName();
2122
}
2223

23-
String generateFullName() {
24-
return faker.name().fullName();
25-
}
26-
2724
String generateAddress() {
2825
String streetAddress = faker.address().streetAddress();
2926
String city = faker.address().cityName();

‎src/main/java/com/dbdatafaker/employee/IEmployeeBuilder.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ public interface IEmployeeBuilder {
66

77
IEmployeeBuilder buildLastName();
88

9-
IEmployeeBuilder buildFullName();
10-
119
IEmployeeBuilder buildAddress();
1210

1311
Employee build();
Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,16 @@
11
package com.dbdatafaker;
22

3-
import junit.framework.Test;
4-
import junit.framework.TestCase;
5-
import junit.framework.TestSuite;
3+
4+
import org.junit.Test;
65

76
/**
87
* Unit test for simple App.
98
*/
10-
public class AppTest
11-
extends TestCase
12-
{
13-
/**
14-
* Create the test case
15-
*
16-
* @param testName name of the test case
17-
*/
18-
public AppTest( String testName )
19-
{
20-
super( testName );
21-
}
9+
public class AppTest {
2210

23-
/**
24-
* @return the suite of tests being tested
25-
*/
26-
public static Test suite()
27-
{
28-
return new TestSuite( AppTest.class );
29-
}
3011

31-
/**
32-
* Rigourous Test :-)
33-
*/
34-
public void testApp()
35-
{
36-
assertTrue( true );
12+
@Test
13+
public void test() {
14+
3715
}
3816
}

0 commit comments

Comments
 (0)