//DBCreate creates a resource in a db. func DBCreate(tx transaction.Transaction, schemaID string, data map[string]interface{}) error { manager := schema.GetManager() resource, err := manager.LoadResource(schemaID, data) if err != nil { return err } return tx.Create(resource) }
//GohanDbCreate adds resource to database func GohanDbCreate(transaction transaction.Transaction, needCommit bool, schemaID string, dataMap map[string]interface{}) (*schema.Resource, error) { manager := schema.GetManager() resource, err := manager.LoadResource(schemaID, dataMap) if err != nil { return nil, fmt.Errorf("Error during gohan_db_create: %s", err.Error()) } resource.PopulateDefaults() if err = transaction.Create(resource); err != nil { return nil, fmt.Errorf("Error during gohan_db_create: %s", err.Error()) } if needCommit { err = transaction.Commit() if err != nil { return nil, fmt.Errorf("Error during gohan_db_create: %s", err.Error()) } } return resource, nil }
conn = "./test.db" dbType = "sqlite3" } }) Context("When the database is empty", func() { It("Returns an empty list", func() { list, num, err := tx.List(networkSchema, nil, nil) Expect(err).ToNot(HaveOccurred()) Expect(num).To(Equal(uint64(0))) Expect(list).To(BeEmpty()) Expect(tx.Commit()).To(Succeed()) }) It("Creates a resource", func() { Expect(tx.Create(networkResource1)).To(Succeed()) Expect(tx.Commit()).To(Succeed()) }) }) Describe("When the database is not empty", func() { JustBeforeEach(func() { Expect(tx.Create(networkResource1)).To(Succeed()) Expect(tx.Create(networkResource2)).To(Succeed()) Expect(tx.Create(serverResource)).To(Succeed()) Expect(tx.Commit()).To(Succeed()) tx.Close() tx, err = dataStore.Begin() Expect(err).ToNot(HaveOccurred()) })
BeforeEach(func() { schemaID = "network" }) Describe("Using gohan_model_list", func() { var ( tx transaction.Transaction ) BeforeEach(func() { resource, err := manager.LoadResource(schemaID, network1) Expect(err).NotTo(HaveOccurred()) tx, err = testDB.Begin() Expect(err).NotTo(HaveOccurred()) defer tx.Close() Expect(tx.Create(resource)).To(Succeed()) Expect(tx.Commit()).To(Succeed()) action = "read" }) Describe("When invoked correctly", func() { Context("With transaction", func() { BeforeEach(func() { events["test"] = ` context.networks = gohan_model_list(context, 'network', {});` }) It("Correctly lists elements", func() { tx, err := testDB.Begin() Expect(err).NotTo(HaveOccurred())