github.com/s7techlab/cckit@v0.10.5/examples/fabcar/testdata/car.go (about) 1 package testdata 2 3 import ( 4 "strconv" 5 6 "github.com/golang/protobuf/proto" 7 . "github.com/onsi/gomega" 8 9 "github.com/s7techlab/cckit/examples/fabcar" 10 ) 11 12 type ( 13 CarSample struct { 14 Create *fabcar.CreateCarRequest 15 Updates []*fabcar.UpdateCarRequest 16 UpdateOwners []*fabcar.UpdateCarOwnersRequest 17 UpdateDetails []*fabcar.UpdateCarDetailsRequest 18 } 19 ) 20 21 func (cs CarSample) IdStrings() []string { 22 return fabcar.CreateCarID(&fabcar.Car{Make: cs.Create.Make, Model: cs.Create.Model, Number: cs.Create.Number}) 23 } 24 25 func (cs CarSample) ExpectCreateEqualCarView(cv *fabcar.CarView) { 26 Expect(cv.Car.Id).To(Equal(cs.IdStrings())) 27 28 Expect(cv.Car.Make).To(Equal(cs.Create.Make)) 29 Expect(cv.Car.Model).To(Equal(cs.Create.Model)) 30 Expect(cv.Car.Colour).To(Equal(cs.Create.Colour)) 31 Expect(cv.Car.Number).To(Equal(cs.Create.Number)) 32 33 ExpectOwnersViewContain(cs.Create.Owners, cv.Owners.Items) 34 35 ExpectDetailsViewContain(cs.Create.Details, cv.Details.Items) 36 } 37 38 func (cs CarSample) ExpectCreateEqualCar(car *fabcar.Car) { 39 Expect(car.Id).To(Equal(cs.IdStrings())) 40 41 Expect(car.Make).To(Equal(cs.Create.Make)) 42 Expect(car.Model).To(Equal(cs.Create.Model)) 43 Expect(car.Colour).To(Equal(cs.Create.Colour)) 44 Expect(car.Number).To(Equal(cs.Create.Number)) 45 } 46 47 func (cs CarSample) CreateClone() *fabcar.CreateCarRequest { 48 return proto.Clone(cs.Create).(*fabcar.CreateCarRequest) 49 } 50 51 func (cs CarSample) UpdatesClone() []*fabcar.UpdateCarRequest { 52 var updates []*fabcar.UpdateCarRequest 53 for _, req := range cs.Updates { 54 updates = append(updates, proto.Clone(req).(*fabcar.UpdateCarRequest)) 55 } 56 57 return updates 58 } 59 60 func (cs CarSample) UpdateOwnersClone() []*fabcar.UpdateCarOwnersRequest { 61 var updates []*fabcar.UpdateCarOwnersRequest 62 for _, req := range cs.UpdateOwners { 63 updates = append(updates, proto.Clone(req).(*fabcar.UpdateCarOwnersRequest)) 64 } 65 66 return updates 67 } 68 69 func (cs CarSample) UpdatesDetailsClone() []*fabcar.UpdateCarDetailsRequest { 70 var updates []*fabcar.UpdateCarDetailsRequest 71 for _, req := range cs.UpdateDetails { 72 updates = append(updates, proto.Clone(req).(*fabcar.UpdateCarDetailsRequest)) 73 } 74 75 return updates 76 } 77 78 func (cs CarSample) Clone() CarSample { 79 return CarSample{ 80 Create: cs.CreateClone(), 81 Updates: cs.UpdatesClone(), 82 UpdateOwners: cs.UpdateOwnersClone(), 83 UpdateDetails: cs.UpdatesDetailsClone(), 84 } 85 } 86 87 var ( 88 Car1Create = &fabcar.CreateCarRequest{ 89 Make: MakerToyota.Create.Name, 90 Model: "Prius", 91 Colour: "blue", 92 Number: 85322, 93 Owners: []*fabcar.SetCarOwner{ 94 { 95 FirstName: "Tomoko", 96 SecondName: "Uemura", 97 VehiclePassport: "Xsdkk4300FSa", 98 }, 99 }, 100 Details: []*fabcar.SetCarDetail{ 101 { 102 Type: fabcar.DetailType_WHEELS, 103 Make: "Michelin", 104 }, 105 { 106 Type: fabcar.DetailType_BATTERY, 107 Make: "BYD", 108 }, 109 }, 110 } 111 112 Car1ID = []string{Car1Create.Make, Car1Create.Model, strconv.Itoa(int(Car1Create.Number))} 113 114 Car1 = CarSample{ 115 Create: Car1Create, 116 Updates: []*fabcar.UpdateCarRequest{{ 117 Id: Car1ID, 118 Color: "black", 119 Owners: []*fabcar.SetCarOwner{{ 120 FirstName: Car1Create.Owners[0].FirstName, 121 SecondName: Car1Create.Owners[0].SecondName, 122 VehiclePassport: "Cok1239Dlk13p", 123 }, 124 { 125 FirstName: "Michel", 126 SecondName: "Tailor", 127 VehiclePassport: "daj12OkDas092cC", 128 }}, 129 Details: []*fabcar.SetCarDetail{{ 130 Type: fabcar.DetailType_WHEELS, 131 Make: "Continental", 132 }}, 133 }}, 134 UpdateOwners: []*fabcar.UpdateCarOwnersRequest{{ 135 CarId: Car1ID, 136 Owners: []*fabcar.SetCarOwner{{ 137 FirstName: Car1Create.Owners[0].FirstName, 138 SecondName: Car1Create.Owners[0].SecondName, 139 VehiclePassport: "23Ck7sAqo0Y7td", 140 }, 141 { 142 FirstName: "Valeria", 143 SecondName: "Peach", 144 VehiclePassport: "312jjkdASd98J87d", 145 }}, 146 }}, 147 UpdateDetails: []*fabcar.UpdateCarDetailsRequest{{ 148 CarId: Car1ID, 149 Details: []*fabcar.SetCarDetail{{ 150 Type: fabcar.DetailType_WHEELS, 151 Make: "Yokohama", 152 }, 153 { 154 Type: fabcar.DetailType_BATTERY, 155 Make: "Contemporary Amperex Technology", 156 }}, 157 }}, 158 } 159 160 Car2Create = &fabcar.CreateCarRequest{ 161 Make: MakerFord.Create.Name, 162 Model: "Mustang", 163 Colour: "red", 164 Number: 85322, 165 Owners: []*fabcar.SetCarOwner{{ 166 FirstName: "Brad", 167 SecondName: "McDonald", 168 VehiclePassport: "Iuuu7o9722C", 169 }, 170 { 171 FirstName: "Adriana", 172 SecondName: "Grande", 173 VehiclePassport: "9972jjaq812k", 174 }}, 175 Details: []*fabcar.SetCarDetail{{ 176 Type: fabcar.DetailType_WHEELS, 177 Make: "Pirelli", 178 }, 179 { 180 Type: fabcar.DetailType_BATTERY, 181 Make: "Panasonic", 182 }}, 183 } 184 185 Car2 = CarSample{ 186 Create: Car2Create, 187 } 188 )