-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathcomposite_test.go
60 lines (34 loc) · 1.19 KB
/
composite_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package composite
import "testing"
//我们目的是:使用一致性的方式访问一类具有共性并相互组合起来的对象
func TestCompositeconnections(t *testing.T) {
box1 := &Box{Cargo: Cargo{1, "Big Box"}, InnerSpace: 130000}
box2 := &Box{Cargo{2, "Middle Box"}, 80000, nil}
box1.PutInCargo(box2)
cargo1 := &SingleCargo{Cargo{3, "Hat"}, "CN", "CA"}
box1.PutInCargo(cargo1)
cargo2 := &SingleCargo{Cargo: Cargo{4, "Men Cloth"}, From: "China", To: "UK"}
cargo3 := &SingleCargo{Cargo: Cargo{5, "Women Cloth"}, From: "HK", To: "TW"}
box2.PutInCargo(cargo2)
box2.PutInCargo(cargo3)
box1.ShowContent()
//Box1
// -Box2
// -Cargo 2
// -Cargo 3
// -Cargo1
}
func TestComposite(t *testing.T) {
box1 := Box{Cargo: Cargo{1, "Big Box"}, InnerSpace: 130000}
box1.ShowContent()
box2 := Box{Cargo{2, "Middle Box"}, 80000, nil}
box2.ShowContent()
cargo1 := SingleCargo{Cargo{1, "Hat"}, "CN", "CA"}
cargo1.ShowContent()
cargo2 := SingleCargo{Cargo: Cargo{2, "Men Cloth"}, From: "China", To: "UK"}
cargo2.ShowContent()
cargo3 := &SingleCargo{Cargo: Cargo{2, "Women Cloth"}, From: "HK", To: "TW"}
cargo3.ShowContent()
//Call base class
cargo3.Cargo.ShowContent()
}