feat 添加测试用例
This commit is contained in:
parent
015781e484
commit
4bef487066
@ -6,10 +6,6 @@ import (
|
|||||||
"gorm.io/gorm/clause"
|
"gorm.io/gorm/clause"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Storage struct {
|
|
||||||
ArticleApi
|
|
||||||
}
|
|
||||||
|
|
||||||
type ArticleApi interface {
|
type ArticleApi interface {
|
||||||
Upsert(article v2.Article) error
|
Upsert(article v2.Article) error
|
||||||
Find(query FindArticleQuery) (articles []v2.Article, err error)
|
Find(query FindArticleQuery) (articles []v2.Article, err error)
|
||||||
|
63
structs/storage/article_test.go
Normal file
63
structs/storage/article_test.go
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
package storage
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
v2 "gitea.timerzz.com/kedaya_haitao/common/structs/v2"
|
||||||
|
"gorm.io/driver/postgres"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetDevDB() (*gorm.DB, error) {
|
||||||
|
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Shanghai", "192.168.31.55", "timerzz", "zhhg1997", "kedaya_dev", "5432")
|
||||||
|
return gorm.Open(postgres.Open(dsn), &gorm.Config{})
|
||||||
|
}
|
||||||
|
|
||||||
|
var article = v2.Article{
|
||||||
|
Name: "test1",
|
||||||
|
EnglishName: "test1",
|
||||||
|
Pid: "111",
|
||||||
|
Brand: "col",
|
||||||
|
Desc: "desc",
|
||||||
|
Image: "http://123",
|
||||||
|
Available: false,
|
||||||
|
CostPrice: 123,
|
||||||
|
Providers: []v2.ProviderArticle{
|
||||||
|
{
|
||||||
|
Pid: "111",
|
||||||
|
Brand: "col1",
|
||||||
|
Link: "http://123",
|
||||||
|
ProviderId: "coach2",
|
||||||
|
SkuID: "sku1",
|
||||||
|
Cost: v2.ProviderPrice{
|
||||||
|
OriginalPrice: 111,
|
||||||
|
FinalPrice: 111,
|
||||||
|
CalMark: "uuuuu",
|
||||||
|
},
|
||||||
|
HistoryPrice: []v2.ProviderPrice{
|
||||||
|
{
|
||||||
|
OriginalPrice: 111,
|
||||||
|
FinalPrice: 111,
|
||||||
|
CalMark: "uuuuu",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
SellPrice: 111,
|
||||||
|
Sellers: []v2.SellerArticle{},
|
||||||
|
Rate: 111,
|
||||||
|
Remark: "111",
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUpsetArticle(t *testing.T) {
|
||||||
|
db, _ := GetDevDB()
|
||||||
|
storage := NewStorage(db)
|
||||||
|
err := db.AutoMigrate(&v2.Article{}, &v2.ProviderArticle{}, &v2.ProviderPrice{}, &v2.SellerArticle{}, &v2.SellerPrice{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if err = storage.Article().Upsert(article); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
19
structs/storage/storage.go
Normal file
19
structs/storage/storage.go
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package storage
|
||||||
|
|
||||||
|
import "gorm.io/gorm"
|
||||||
|
|
||||||
|
type Storage struct {
|
||||||
|
articleApi ArticleApi
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewStorage(db *gorm.DB) *Storage {
|
||||||
|
return &Storage{
|
||||||
|
articleApi: &articleApi{
|
||||||
|
db: db,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Storage) Article() ArticleApi {
|
||||||
|
return s.articleApi
|
||||||
|
}
|
@ -1,61 +0,0 @@
|
|||||||
package v2
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"gorm.io/driver/postgres"
|
|
||||||
"gorm.io/gorm"
|
|
||||||
"gorm.io/gorm/clause"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestModel(t *testing.T) {
|
|
||||||
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Shanghai", "192.168.31.55", "timerzz", "zhhg1997", "kedaya_dev", "5432")
|
|
||||||
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
err = db.AutoMigrate(&Article{}, &ProviderArticle{}, &ProviderPrice{}, &SellerArticle{}, &SellerPrice{})
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
var article = Article{
|
|
||||||
Name: "test",
|
|
||||||
EnglishName: "test",
|
|
||||||
Pid: "1299999922",
|
|
||||||
Brand: "col",
|
|
||||||
Desc: "desc",
|
|
||||||
Image: "http://123",
|
|
||||||
Available: false,
|
|
||||||
CostPrice: 123,
|
|
||||||
Providers: []ProviderArticle{
|
|
||||||
{
|
|
||||||
Pid: "999",
|
|
||||||
Brand: "col",
|
|
||||||
Link: "http://123",
|
|
||||||
ProviderId: "coach",
|
|
||||||
SkuID: "sku999999",
|
|
||||||
Cost: ProviderPrice{
|
|
||||||
OriginalPrice: 000,
|
|
||||||
FinalPrice: 0000,
|
|
||||||
CalMark: "uuuuu",
|
|
||||||
},
|
|
||||||
HistoryPrice: []ProviderPrice{
|
|
||||||
{
|
|
||||||
OriginalPrice: 0000,
|
|
||||||
FinalPrice: 000,
|
|
||||||
CalMark: "uuuuu",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SellPrice: 321,
|
|
||||||
Sellers: []SellerArticle{},
|
|
||||||
Rate: 123,
|
|
||||||
Remark: "jjjjj",
|
|
||||||
}
|
|
||||||
db.Clauses(clause.OnConflict{
|
|
||||||
Columns: []clause.Column{{Name: "pid"}, {Name: "brand"}},
|
|
||||||
DoUpdates: clause.AssignmentColumns([]string{"name", "english_name", "available", "updated_at"}),
|
|
||||||
}).Create(&article)
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user