Expect(err).NotTo(HaveOccurred())
			Expect(fetchedUser).To(Equal(updatedUser))
		})
	})

	It("does not allow a user to be created without an email address", func() {
		_, err := client.Users.Create("warrant-invalid-email-user", "", UAAToken)
		Expect(err).To(BeAssignableToTypeOf(warrant.BadRequestError{}))
	})

	It("does not allow non-existant users to be updated", func() {
		user, err := client.Users.Create(UAADefaultUsername, "*****@*****.**", UAAToken)
		Expect(err).NotTo(HaveOccurred())

		originalUserID := user.ID
		user.ID = "non-existant-user-guid"
		_, err = client.Users.Update(user, UAAToken)
		Expect(err).To(BeAssignableToTypeOf(warrant.NotFoundError{}))

		err = client.Users.Delete(originalUserID, UAAToken)
		Expect(err).NotTo(HaveOccurred())
	})

	Context("when a user already exists", func() {
		BeforeEach(func() {
			var err error
			user, err = client.Users.Create(UAADefaultUsername, "*****@*****.**", UAAToken)
			Expect(err).NotTo(HaveOccurred())
		})

		It("does not allow duplicate users to be created", func() {