// getAttributeValuesForWebsites creates a map where the key is the attribute ID and // each part of the StringEntities slice are the full attribute values for a website ID. func getAttributeValuesForWebsites(ctx *context) map[string][]codegen.StringEntities { var tws store.TableWebsiteSlice tws.Load(ctx.dbrConn.NewSession(nil), func(sb *dbr.SelectBuilder) *dbr.SelectBuilder { return sb.Where("website_id > 0") }) // key contains the attributeID as a string var aws = make(map[string][]codegen.StringEntities) tew, err := ctx.aat.TableEavWebsite() codegen.LogFatal(err) if tew != nil { // only for those who have a wbesite specific table for _, w := range tws { aCollection, err := codegen.LoadStringEntities(ctx.db, getAttrSelect(ctx, w.WebsiteID)) codegen.LogFatal(err) for _, row := range aCollection { if aid, ok := row["attribute_id"]; ok { if nil == aws[aid] { aws[aid] = make([]codegen.StringEntities, 0, 200) // up to 200 websites at once } aws[aid] = append(aws[aid], row) } else { codegen.LogFatal(errgo.Newf("Column attribute_id not found in collection %#v\n", aCollection)) } } } } return aws }
func TestTableWebsiteSliceLoad(t *testing.T) { db := csdb.MustConnectTest() defer db.Close() dbrSess := dbr.NewConnection(db, nil).NewSession(nil) var websites store.TableWebsiteSlice websites.Load(dbrSess) assert.True(t, websites.Len() > 2) for _, s := range websites { assert.True(t, len(s.Code.String) > 1) } }
func TestTableWebsiteSliceLoad(t *testing.T) { dbc := csdb.MustConnectTest() defer dbc.Close() dbrSess := dbc.NewSession() var websites store.TableWebsiteSlice websites.SQLSelect(dbrSess) assert.True(t, websites.Len() >= 2) for _, s := range websites { assert.True(t, len(s.Code.String) > 1) } }
func TestTableWebsiteSlice(t *testing.T) { websites := store.TableWebsiteSlice{ &store.TableWebsite{WebsiteID: 0, Code: dbr.NewNullString("admin"), Name: dbr.NewNullString("Admin"), SortOrder: 0, DefaultGroupID: 0, IsDefault: dbr.NewNullBool(false)}, &store.TableWebsite{WebsiteID: 1, Code: dbr.NewNullString("euro"), Name: dbr.NewNullString("Europe"), SortOrder: 0, DefaultGroupID: 1, IsDefault: dbr.NewNullBool(true)}, nil, &store.TableWebsite{WebsiteID: 2, Code: dbr.NewNullString("oz"), Name: dbr.NewNullString("OZ"), SortOrder: 20, DefaultGroupID: 3, IsDefault: dbr.NewNullBool(false)}, } assert.True(t, websites.Len() == 4) w1, err := websites.FindByWebsiteID(999) assert.Nil(t, w1) assert.EqualError(t, store.ErrIDNotFoundTableWebsiteSlice, err.Error()) w2, err := websites.FindByWebsiteID(2) assert.NotNil(t, w2) assert.NoError(t, err) assert.Equal(t, int64(2), w2.WebsiteID) w3, err := websites.FindByCode("euro") assert.NotNil(t, w3) assert.NoError(t, err) assert.Equal(t, "euro", w3.Code.String) w4, err := websites.FindByCode("corestore") assert.Nil(t, w4) assert.EqualError(t, store.ErrIDNotFoundTableWebsiteSlice, err.Error()) wf1 := websites.Filter(func(w *store.TableWebsite) bool { return w != nil && w.WebsiteID == 1 }) assert.EqualValues(t, "Europe", wf1[0].Name.String) }
func TestTableWebsiteSlice(t *testing.T) { websites := store.TableWebsiteSlice{ &store.TableWebsite{WebsiteID: 0, Code: dbr.NullString{NullString: sql.NullString{String: "admin", Valid: true}}, Name: dbr.NullString{NullString: sql.NullString{String: "Admin", Valid: true}}, SortOrder: 0, DefaultGroupID: 0, IsDefault: dbr.NullBool{NullBool: sql.NullBool{Bool: false, Valid: true}}}, &store.TableWebsite{WebsiteID: 1, Code: dbr.NullString{NullString: sql.NullString{String: "euro", Valid: true}}, Name: dbr.NullString{NullString: sql.NullString{String: "Europe", Valid: true}}, SortOrder: 0, DefaultGroupID: 1, IsDefault: dbr.NullBool{NullBool: sql.NullBool{Bool: true, Valid: true}}}, nil, &store.TableWebsite{WebsiteID: 2, Code: dbr.NullString{NullString: sql.NullString{String: "oz", Valid: true}}, Name: dbr.NullString{NullString: sql.NullString{String: "OZ", Valid: true}}, SortOrder: 20, DefaultGroupID: 3, IsDefault: dbr.NullBool{NullBool: sql.NullBool{Bool: false, Valid: true}}}, } assert.True(t, websites.Len() == 4) w1, err := websites.FindByID(999) assert.Nil(t, w1) assert.EqualError(t, store.ErrWebsiteNotFound, err.Error()) w2, err := websites.FindByID(2) assert.NotNil(t, w2) assert.NoError(t, err) assert.Equal(t, int64(2), w2.WebsiteID) w3, err := websites.FindByCode("euro") assert.NotNil(t, w3) assert.NoError(t, err) assert.Equal(t, "euro", w3.Code.String) w4, err := websites.FindByCode("corestore") assert.Nil(t, w4) assert.EqualError(t, store.ErrWebsiteNotFound, err.Error()) wf1 := websites.Filter(func(w *store.TableWebsite) bool { return w.WebsiteID == 1 }) assert.EqualValues(t, "Europe", wf1[0].Name.String) }