1: public class AddressBuilder : BuilderBase<AddressBuilder, Address>
2: {
3: private int id;
4: private string addressLine1 = GetUniqueValueFor();
5: private string addressLine2 = GetUniqueValueFor();
6: private string addressLine3 = GetUniqueValueFor();
7: private string addressLine4 = GetUniqueValueFor();
8: private string city = GetUniqueValueFor();
9: private string countryCode = "GB";
10: private string postCode = "SE1 9EU";
11: private string county = "London";
12:
13: public AddressBuilder WithId(int id)
14: {
15: this.id = id;
16: return this;
17: }
18:
19: public AddressBuilder WithAddressLine1(string addressLine1)
20: {
21: this.addressLine1 = addressLine1;
22: return this;
23: }
24:
25: public AddressBuilder WithAddressLine2(string addressLine2)
26: {
27: this.addressLine2 = addressLine2;
28: return this;
29: }
30:
31: public AddressBuilder WithAddressLine3(string addressLine3)
32: {
33: this.addressLine3 = addressLine3;
34: return this;
35: }
36:
37: public AddressBuilder WithAddressLine4(string addressLine4)
38: {
39: this.addressLine4 = addressLine4;
40: return this;
41: }
42:
43: public AddressBuilder WithCity(string city)
44: {
45: this.city = city;
46: return this;
47: }
48:
49: public AddressBuilder WithCountry(string countryCode)
50: {
51: this.countryCode = countryCode;
52: return this;
53: }
54:
55: public AddressBuilder WithPostCode(string postCode)
56: {
57: this.postCode = postCode;
58: return this;
59: }
60:
61: public AddressBuilder WithCounty(string county)
62: {
63: this.county = county;
64: return this;
65: }
66:
67: public override Address Build()
68: {
69: var address = new Address
70: {
71: Id = this.id,
72: AddressLine1 = this.addressLine1,
73: AddressLine2 = this.addressLine2,
74: AddressLine3 = this.addressLine3,
75: AddressLine4 = this.addressLine4,
76: City = this.city,
77: CountryCode = this.countryCode,
78: County = this.county,
79: Postcode = this.postCode
80: };
81:
82: return address;
83: }
84: }