gorma.GormaDesign = nil
		InitDesign()
		RandomPayload = Type("UserPayload", func() {
			Attribute("first_name", String)
			Attribute("last_name", String)
		})

	})

	JustBeforeEach(func() {
		gdsl.StorageGroup(sgname, func() {
			gdsl.Store(storename, gorma.MySQL, func() {
				gdsl.Model(modelname, func() {
					gdsl.BuiltFrom(RandomPayload)
					gdsl.Field(name, ft, dsl)
					gdsl.Field("id", gorma.PKInteger, dsl) // use lowercase "id" to test sanitizer
					gdsl.Field("CreatedAt", gorma.Timestamp)
					gdsl.Field("UpdatedAt", gorma.Timestamp)
					gdsl.Field("DeletedAt", gorma.NullableTimestamp)
				})
			})
		})
		Run()

	})

	Context("with no DSL", func() {
		BeforeEach(func() {
			name = "FirstName"
		})

		It("produces a valid Relational Field definition", func() {
		})
		HasOnePayload = Type("HasOnePayload", func() {
			Attribute("first_name", String)
			Attribute("last_name", String)
		})

		HasManyPayload = Type("HasManyPayload", func() {
			Attribute("first_name", String)
			Attribute("last_name", String)
		})

	})

	JustBeforeEach(func() {
		storedsl = func() {
			gdsl.Model(name, dsl)
			gdsl.Model("Child", func() {
				gdsl.BuildsFrom(func() {
					gdsl.Payload("testresource", "create")
				})
				gdsl.RendersTo(ChildMedia)
				gdsl.BelongsTo(name)
			})
			gdsl.Model("One", func() {
				gdsl.BuildsFrom(func() {
					gdsl.Payload("testresource", "create")
				})
				gdsl.HasOne("Child")
			})
			gdsl.Model("Many", func() {
				gdsl.BuildsFrom(func() {
		HasOnePayload = Type("HasOnePayload", func() {
			Attribute("first_name", String)
			Attribute("last_name", String)
		})

		HasManyPayload = Type("HasManyPayload", func() {
			Attribute("first_name", String)
			Attribute("last_name", String)
		})

	})

	JustBeforeEach(func() {
		gdsl.StorageGroup(sgname, func() {
			gdsl.Store(storename, gorma.MySQL, func() {
				gdsl.Model(name, dsl)
				gdsl.Model("Child", func() {
					gdsl.BuiltFrom(ChildPayload)
					gdsl.BelongsTo(name)
				})
				gdsl.Model("One", func() {
					gdsl.BuiltFrom(HasOnePayload)
					gdsl.HasOne("Child")
				})
				gdsl.Model("Many", func() {
					gdsl.BuiltFrom(HasManyPayload)
					gdsl.HasMany("Children", "Child")
				})

			})
		})
	JustBeforeEach(func() {

		modeldsl = func() {
			//gdsl.BuildsFrom(RandomPayload)
			gdsl.Field(name, ft, dsl)
			gdsl.Field("id", gorma.Integer, dsl) // use lowercase "id" to test sanitizer
			gdsl.Field("MiddleName", gorma.String)
			gdsl.Field("CreatedAt", gorma.Timestamp)
			gdsl.Field("UpdatedAt", gorma.Timestamp)
			gdsl.Field("DeletedAt", gorma.NullableTimestamp)

		}
		gdsl.StorageGroup(sgname, func() {
			gdsl.Store(storename, gorma.MySQL, func() {
				gdsl.Model(modelname, modeldsl)
			})
		})
		Run()

	})

	Context("with no DSL", func() {
		BeforeEach(func() {
			name = "FirstName"
		})

		It("produces a valid Relational Field definition", func() {
			Ω(Design.Validate()).ShouldNot(HaveOccurred())
			sg := gorma.GormaDesign
			rs := sg.RelationalStores[storename]