mirror of
https://github.com/crazybber/go-pattern-examples.git
synced 2024-12-01 15:46:02 +03:00
37 lines
746 B
Go
37 lines
746 B
Go
package mediator
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestMediator(t *testing.T) {
|
|
|
|
med := &Mediator{}
|
|
landlord := &Landlord{}
|
|
//登记房源信息
|
|
med.RegisterRoom(landlord)
|
|
tenant := &Tenant{}
|
|
//向中介租房
|
|
med.RentOutRoom(tenant)
|
|
|
|
//房东收租
|
|
landlord.CollectRent(med)
|
|
//租客要求修理
|
|
tenant.AskRepair(med)
|
|
|
|
}
|
|
|
|
func TestClassCompose(t *testing.T) {
|
|
|
|
med := &Mediator{Person: Person{Name: "mediator", WalletAssets: 1001}}
|
|
|
|
landlord := &Landlord{Person: Person{Name: "landlord", WalletAssets: 2000}, RentAccout: 500}
|
|
|
|
tenant := &Tenant{Person: Person{Name: "tenant", WalletAssets: 500}, furniture: "desk"}
|
|
|
|
fmt.Println("mediator", med)
|
|
fmt.Println("landlord", landlord.Name)
|
|
fmt.Println("tenant", tenant.furniture)
|
|
}
|