By("unwrapping", func() { var unmarshalledAction *models.Action err := json.Unmarshal([]byte("null"), &unmarshalledAction) Expect(err).NotTo(HaveOccurred()) Expect(unmarshalledAction).To(BeNil()) }) }) Describe("Validate", func() { var action *models.Action Context("when the action has no inner actions", func() { It("is valid", func() { action = nil err := action.Validate() Expect(err).NotTo(HaveOccurred()) }) }) }) }) Describe("Download", func() { var downloadAction *models.DownloadAction Context("with checksum algorithm and value missing", func() { itSerializesAndDeserializes( `{ "artifact": "mouse", "from": "web_location", "to": "local_location",