} annotation := "annotated" update = &models.DesiredLRPUpdate{ Instances: &instances, Routes: &routes, Annotation: &annotation, } _, err := sqlDB.UpdateDesiredLRP(logger, expectedDesiredLRP.ProcessGuid, update) Expect(err).NotTo(HaveOccurred()) desiredLRP, err := sqlDB.DesiredLRPByProcessGuid(logger, expectedDesiredLRP.ProcessGuid) Expect(err).NotTo(HaveOccurred()) expectedDesiredLRP.Instances = instances expectedDesiredLRP.Annotation = annotation expectedDesiredLRP.Routes = &routes expectedDesiredLRP.ModificationTag.Increment() Expect(desiredLRP).To(BeEquivalentTo(expectedDesiredLRP)) }) It("returns the desired lrp from before the update", func() { instances := int32(20) update = &models.DesiredLRPUpdate{ Instances: &instances, } beforeDesiredLRP, err := sqlDB.UpdateDesiredLRP(logger, expectedDesiredLRP.ProcessGuid, update) Expect(err).NotTo(HaveOccurred()) Expect(beforeDesiredLRP).To(Equal(expectedDesiredLRP)) })
protoSerialization, err := proto.Marshal(&desiredLRP) Expect(err).NotTo(HaveOccurred()) var protoDeserialization models.DesiredLRP err = proto.Unmarshal(protoSerialization, &protoDeserialization) Expect(err).NotTo(HaveOccurred()) desiredRoutes := *desiredLRP.Routes deserializedRoutes := *protoDeserialization.Routes Expect(deserializedRoutes).To(HaveLen(len(desiredRoutes))) for k := range desiredRoutes { Expect(string(*deserializedRoutes[k])).To(MatchJSON(string(*desiredRoutes[k]))) } desiredLRP.Routes = nil protoDeserialization.Routes = nil Expect(protoDeserialization).To(Equal(desiredLRP)) }) }) Describe("ApplyUpdate", func() { It("updates instances", func() { instances := int32(100) update := &models.DesiredLRPUpdate{Instances: &instances} schedulingInfo := desiredLRP.DesiredLRPSchedulingInfo() expectedSchedulingInfo := schedulingInfo expectedSchedulingInfo.Instances = instances expectedSchedulingInfo.ModificationTag.Increment()