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  )