}

		token, err := jwt.Parse(helpers.BuildToken(tokenHeader, tokenClaims), func(token *jwt.Token) (interface{}, error) {
			return []byte(application.UAAPublicKey), nil
		})

		database = mocks.NewDatabase()

		context = stack.NewContext()
		context.Set("token", token)
		context.Set("database", database)

		builder = services.NewPreferencesBuilder()
		builder.Add(models.Preference{
			ClientID: "raptorClient",
			KindID:   "hungry-kind",
			Email:    false,
		})
		builder.Add(models.Preference{
			ClientID: "starWarsClient",
			KindID:   "vader-kind",
			Email:    true,
		})
		builder.GlobalUnsubscribe = true

		preferencesFinder = mocks.NewPreferencesFinder()
		preferencesFinder.FindCall.Returns.PreferencesBuilder = builder

		handler = preferences.NewGetPreferencesHandler(preferencesFinder, errorWriter)
	})
var _ = Describe("NotificationsPreferences", func() {
	var builder services.PreferencesBuilder
	var TRUE = true
	var FALSE = false

	Describe("Add", func() {
		BeforeEach(func() {
			builder = services.NewPreferencesBuilder()
		})

		It("adds new preferences", func() {
			builder.Add(models.Preference{
				ClientID:          "clientID",
				KindID:            "kindID",
				Email:             true,
				KindDescription:   "kind description",
				SourceDescription: "client description",
			})

			node := builder.Clients["clientID"]["kindID"]
			Expect(node).To(Equal(services.Kind{
				Email:             &TRUE,
				KindDescription:   "kind description",
				SourceDescription: "client description",
			}))
		})

		It("adds new preferences to an old client", func() {
			builder.Add(models.Preference{
				ClientID:          "clientID",