[change] unit-tests workflow & remove OSS support

This commit is contained in:
Max 2022-09-01 14:36:19 +08:00
parent 2e1ef3ecb2
commit f66d6bc4ac
10 changed files with 508 additions and 542 deletions

View file

@ -1,6 +1,10 @@
name: UnitTest
on:
workflow_dispatch:
inputs:
tags:
description: "Comment"
push:
branches: [main]
@ -40,19 +44,19 @@ jobs:
- name: Checkout Kun
uses: actions/checkout@v2
with:
repository: yaoapp/kun
repository: ${{ github.event.org.login }}/kun
path: kun
- name: Checkout Xun
uses: actions/checkout@v2
with:
repository: yaoapp/xun
repository: ${{ github.event.org.login }}/xun
path: xun
- name: Checkout Gou
uses: actions/checkout@v2
with:
repository: yaoapp/gou
repository: ${{ github.event.org.login }}/gou
path: gou
- name: Checkout V8Go

3
.gitignore vendored
View file

@ -19,7 +19,7 @@
dist
ui
^ui/index.html
tests/data/*/*
tests/data/*
debug.log
yao-test
dev.sh
@ -27,3 +27,4 @@ logs
logs/application.log
yao-arm64
tests/db/yao.db
env.*.sh

4
go.mod
View file

@ -4,7 +4,6 @@ go 1.18
require (
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1286
github.com/aliyun/aliyun-oss-go-sdk v2.1.10+incompatible
github.com/caarlos0/env/v6 v6.9.1
github.com/elazarl/go-bindata-assetfs v1.0.1
github.com/fatih/color v1.13.0
@ -26,7 +25,6 @@ require (
require (
github.com/TylerBrock/colorjson v0.0.0-20200706003622-8a50f05110d2 // indirect
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
@ -64,7 +62,6 @@ require (
github.com/richardlehane/mscfb v1.0.3 // indirect
github.com/richardlehane/msoleps v1.0.1 // indirect
github.com/robfig/cron/v3 v3.0.1 // indirect
github.com/satori/go.uuid v1.2.0 // indirect
github.com/sirupsen/logrus v1.8.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/takama/daemon v1.0.0 // indirect
@ -83,7 +80,6 @@ require (
golang.org/x/net v0.0.0-20220526153639-5463443f8c37 // indirect
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect
golang.org/x/text v0.3.7 // indirect
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
golang.org/x/tools v0.1.7 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
google.golang.org/genproto v0.0.0-20220526192754-51939a95c655 // indirect

View file

@ -1 +0,0 @@
# Golang 插件

View file

@ -1,17 +1,12 @@
package workflow
import (
"testing"
// Workflow will be removed from engine
"github.com/stretchr/testify/assert"
"github.com/yaoapp/gou"
)
// func TestSetupAPIs(t *testing.T) {
// assignFlow := Select("assign")
// assignFlow.SetupAPIs()
func TestSetupAPIs(t *testing.T) {
assignFlow := Select("assign")
assignFlow.SetupAPIs()
api := gou.SelectAPI("xiang.workflow.assign")
assert.Equal(t, "xiang.workflow.assign", api.Name)
assert.Equal(t, 10, len(api.HTTP.Paths))
}
// api := gou.SelectAPI("xiang.workflow.assign")
// assert.Equal(t, "xiang.workflow.assign", api.Name)
// assert.Equal(t, 10, len(api.HTTP.Paths))
// }

View file

@ -2,6 +2,8 @@ package workflow
import "github.com/yaoapp/gou"
// WARNING: the Workflow widget will be removed from yao engine
// Process
// 读取工作流 xiang.workflow.Find(name, workflow_id)
// 读取工作流 xiang.workflow.Open(name, uid, data_id)

View file

@ -1,247 +1,233 @@
package workflow
import (
"os"
"path"
"testing"
// WARNING: the Workflow widget will be removed from yao engine
"github.com/stretchr/testify/assert"
"github.com/yaoapp/gou"
"github.com/yaoapp/kun/any"
"github.com/yaoapp/xun/capsule"
"github.com/yaoapp/yao/config"
"github.com/yaoapp/yao/flow"
"github.com/yaoapp/yao/model"
"github.com/yaoapp/yao/query"
"github.com/yaoapp/yao/share"
)
// func init() {
// share.DBConnect(config.Conf.DB)
// share.Load(config.Conf)
// model.Load(config.Conf)
// engineModels := path.Join(os.Getenv("YAO_DEV"), "yao", "models")
// model.LoadFrom(engineModels, "xiang.")
// query.Load(config.Conf)
// flow.Load(config.Conf)
// Load(config.Conf)
// }
func init() {
share.DBConnect(config.Conf.DB)
share.Load(config.Conf)
model.Load(config.Conf)
engineModels := path.Join(os.Getenv("YAO_DEV"), "yao", "models")
model.LoadFrom(engineModels, "xiang.")
query.Load(config.Conf)
flow.Load(config.Conf)
Load(config.Conf)
}
// func TestProcessFind(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
func TestProcessFind(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
// args := []interface{}{"assign", wflow["id"]}
// res := gou.NewProcess("xiang.workflow.Find", args...).Run()
args := []interface{}{"assign", wflow["id"]}
res := gou.NewProcess("xiang.workflow.Find", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, wflow["id"], data.Get("id"))
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, wflow["id"], data.Get("id"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessSetting(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestProcessSetting(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// args := []interface{}{"assign", 1, 1}
// res := gou.NewProcess("xiang.workflow.Setting", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, 2, data.Get("nodes.2.source"))
// assert.Equal(t, 2, data.Get("nodes.3.source"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "指派商务负责人", data.Get("label"))
args := []interface{}{"assign", 1, 1}
res := gou.NewProcess("xiang.workflow.Setting", args...).Run()
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, 2, data.Get("nodes.2.source"))
assert.Equal(t, 2, data.Get("nodes.3.source"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "指派商务负责人", data.Get("label"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessOpen(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
func TestProcessOpen(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
// args := []interface{}{"assign", 1, 1}
// res := gou.NewProcess("xiang.workflow.Open", args...).Run()
args := []interface{}{"assign", 1, 1}
res := gou.NewProcess("xiang.workflow.Open", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, wflow["id"], data.Get("id"))
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, wflow["id"], data.Get("id"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessSave(t *testing.T) {
// args := []interface{}{"assign",
// 1, "选择商务负责人", 1,
// map[string]interface{}{
// "data": map[string]interface{}{"id": 1, "name": "云主机"},
// "form": map[string]interface{}{"biz_id": 1, "name": "张良明"},
// },
// map[string]interface{}{"foo": "bar"},
// }
// res := gou.NewProcess("xiang.workflow.Save", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, int64(1), data.Get("id"))
func TestProcessSave(t *testing.T) {
args := []interface{}{"assign",
1, "选择商务负责人", 1,
map[string]interface{}{
"data": map[string]interface{}{"id": 1, "name": "云主机"},
"form": map[string]interface{}{"biz_id": 1, "name": "张良明"},
},
map[string]interface{}{"foo": "bar"},
}
res := gou.NewProcess("xiang.workflow.Save", args...).Run()
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, int64(1), data.Get("id"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessNext(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
func TestProcessNext(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
// args := []interface{}{"assign",
// 1, wflow["id"], map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// },
// }
// res := gou.NewProcess("xiang.workflow.Next", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, wflow["id"], data.Get("id"))
// assert.Equal(t, "项目负责人审批", data.Get("node_name"))
args := []interface{}{"assign",
1, wflow["id"], map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
},
}
res := gou.NewProcess("xiang.workflow.Next", args...).Run()
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, wflow["id"], data.Get("id"))
assert.Equal(t, "项目负责人审批", data.Get("node_name"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessGoto(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestProcessGoto(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// args := []interface{}{"assign",
// 2, id, "选择商务负责人",
// map[string]interface{}{"审批结果": "驳回"},
// }
// res := gou.NewProcess("xiang.workflow.Goto", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, wflow["id"], data.Get("id"))
// assert.Equal(t, "选择商务负责人", data.Get("node_name"))
args := []interface{}{"assign",
2, id, "选择商务负责人",
map[string]interface{}{"审批结果": "驳回"},
}
res := gou.NewProcess("xiang.workflow.Goto", args...).Run()
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, wflow["id"], data.Get("id"))
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessStatus(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestProcessStatus(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// args := []interface{}{"assign",
// 2, id, "已完成", map[string]interface{}{"关闭原因": "测试完成"},
// }
// res := gou.NewProcess("xiang.workflow.Status", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, wflow["id"], data.Get("id"))
// assert.Equal(t, "已完成", data.Get("status"))
args := []interface{}{"assign",
2, id, "已完成", map[string]interface{}{"关闭原因": "测试完成"},
}
res := gou.NewProcess("xiang.workflow.Status", args...).Run()
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, wflow["id"], data.Get("id"))
assert.Equal(t, "已完成", data.Get("status"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessDone(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestProcessDone(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// args := []interface{}{"assign",
// 2, id, map[string]interface{}{"关闭原因": "测试完成"},
// }
// res := gou.NewProcess("xiang.workflow.Done", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, wflow["id"], data.Get("id"))
// assert.Equal(t, "已完成", data.Get("status"))
args := []interface{}{"assign",
2, id, map[string]interface{}{"关闭原因": "测试完成"},
}
res := gou.NewProcess("xiang.workflow.Done", args...).Run()
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, wflow["id"], data.Get("id"))
assert.Equal(t, "已完成", data.Get("status"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessClose(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestProcessClose(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// args := []interface{}{"assign",
// 2, id, map[string]interface{}{"关闭原因": "测试关闭"},
// }
// res := gou.NewProcess("xiang.workflow.Close", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, wflow["id"], data.Get("id"))
// assert.Equal(t, "已关闭", data.Get("status"))
args := []interface{}{"assign",
2, id, map[string]interface{}{"关闭原因": "测试关闭"},
}
res := gou.NewProcess("xiang.workflow.Close", args...).Run()
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, wflow["id"], data.Get("id"))
assert.Equal(t, "已关闭", data.Get("status"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestProcessReset(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestProcessReset(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// args := []interface{}{"assign",
// 2, id, map[string]interface{}{"驳回原因": "字段填写错误"},
// }
// res := gou.NewProcess("xiang.workflow.Reset", args...).Run()
// data := any.Of(res).Map().MapStrAny.Dot()
// assert.Equal(t, wflow["id"], data.Get("id"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, "选择商务负责人", data.Get("node_name"))
args := []interface{}{"assign",
2, id, map[string]interface{}{"驳回原因": "字段填写错误"},
}
res := gou.NewProcess("xiang.workflow.Reset", args...).Run()
data := any.Of(res).Map().MapStrAny.Dot()
assert.Equal(t, wflow["id"], data.Get("id"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }

View file

@ -18,6 +18,8 @@ import (
"github.com/yaoapp/yao/share"
)
// WARNING: the Workflow widget will be removed from yao engine
// Process
// 读取工作流 xiang.workflow.Find(name, workflow_id)
// 读取工作流 xiang.workflow.Open(name, uid, data_id)

View file

@ -1,310 +1,296 @@
package workflow
import (
"os"
"path"
"testing"
// WARNING: the Workflow widget will be removed from yao engine
"github.com/stretchr/testify/assert"
"github.com/yaoapp/kun/any"
"github.com/yaoapp/kun/maps"
"github.com/yaoapp/xun/capsule"
"github.com/yaoapp/yao/config"
"github.com/yaoapp/yao/flow"
"github.com/yaoapp/yao/model"
"github.com/yaoapp/yao/query"
"github.com/yaoapp/yao/share"
)
// func init() {
// share.DBConnect(config.Conf.DB)
// share.Load(config.Conf)
// model.Load(config.Conf)
// engineModels := path.Join(os.Getenv("YAO_DEV"), "xiang", "models")
// model.LoadFrom(engineModels, "xiang.")
// query.Load(config.Conf)
// flow.Load(config.Conf)
// Load(config.Conf)
// }
func init() {
share.DBConnect(config.Conf.DB)
share.Load(config.Conf)
model.Load(config.Conf)
engineModels := path.Join(os.Getenv("YAO_DEV"), "xiang", "models")
model.LoadFrom(engineModels, "xiang.")
query.Load(config.Conf)
flow.Load(config.Conf)
Load(config.Conf)
}
// func TestLoad(t *testing.T) {
// share.DBConnect(config.Conf.DB)
// share.Load(config.Conf)
// model.Load(config.Conf)
// query.Load(config.Conf)
// Load(config.Conf)
// LoadFrom("not a path", "404.")
// check(t)
// }
func TestLoad(t *testing.T) {
share.DBConnect(config.Conf.DB)
share.Load(config.Conf)
model.Load(config.Conf)
query.Load(config.Conf)
Load(config.Conf)
LoadFrom("not a path", "404.")
check(t)
}
// func TestSave(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
func TestSave(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
// data := maps.Of(wflow).Dot()
// assert.Equal(t, int64(1), data.Get("id"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "选择商务负责人", data.Get("node_name"))
// assert.Equal(t, "进行中", data.Get("node_status"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, float64(1), data.Get("input.选择商务负责人.data.id"))
// assert.Equal(t, "云主机", data.Get("input.选择商务负责人.data.name"))
// assert.Equal(t, float64(1), data.Get("input.选择商务负责人.form.biz_id"))
// assert.Equal(t, "张良明", data.Get("input.选择商务负责人.form.name"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
data := maps.Of(wflow).Dot()
assert.Equal(t, int64(1), data.Get("id"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
assert.Equal(t, "进行中", data.Get("node_status"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, float64(1), data.Get("input.选择商务负责人.data.id"))
assert.Equal(t, "云主机", data.Get("input.选择商务负责人.data.name"))
assert.Equal(t, float64(1), data.Get("input.选择商务负责人.form.biz_id"))
assert.Equal(t, "张良明", data.Get("input.选择商务负责人.form.name"))
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestSaveUpdate(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
func TestSaveUpdate(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
// wflow = assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云存储"},
// Form: map[string]interface{}{"biz_id": 1, "name": "李明博"},
// })
wflow = assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云存储"},
Form: map[string]interface{}{"biz_id": 1, "name": "李明博"},
})
// data := maps.Of(wflow).Dot()
// assert.Equal(t, int64(1), data.Get("id"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "选择商务负责人", data.Get("node_name"))
// assert.Equal(t, "进行中", data.Get("node_status"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, float64(1), data.Get("input.选择商务负责人.data.id"))
// assert.Equal(t, "云存储", data.Get("input.选择商务负责人.data.name"))
// assert.Equal(t, float64(1), data.Get("input.选择商务负责人.form.biz_id"))
// assert.Equal(t, "李明博", data.Get("input.选择商务负责人.form.name"))
data := maps.Of(wflow).Dot()
assert.Equal(t, int64(1), data.Get("id"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
assert.Equal(t, "进行中", data.Get("node_status"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, float64(1), data.Get("input.选择商务负责人.data.id"))
assert.Equal(t, "云存储", data.Get("input.选择商务负责人.data.name"))
assert.Equal(t, float64(1), data.Get("input.选择商务负责人.form.biz_id"))
assert.Equal(t, "李明博", data.Get("input.选择商务负责人.form.name"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestOpen(t *testing.T) {
// assignFlow := Select("assign")
// assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// wflow := assignFlow.Open(1, 1)
// data := maps.Of(wflow).Dot()
// assert.Equal(t, int64(1), data.Get("id"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "选择商务负责人", data.Get("node_name"))
// assert.Equal(t, "进行中", data.Get("node_status"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, int64(1), data.Get("user_id"))
// assert.Equal(t, float64(1), data.Get("users.选择商务负责人"))
func TestOpen(t *testing.T) {
assignFlow := Select("assign")
assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
wflow := assignFlow.Open(1, 1)
data := maps.Of(wflow).Dot()
assert.Equal(t, int64(1), data.Get("id"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
assert.Equal(t, "进行中", data.Get("node_status"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, int64(1), data.Get("user_id"))
assert.Equal(t, float64(1), data.Get("users.选择商务负责人"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestOpenEmpty(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Open(1, 1)
// data := maps.Of(wflow).Dot()
// assert.Equal(t, false, data.Has("id"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "选择商务负责人", data.Get("node_name"))
// assert.Equal(t, "进行中", data.Get("node_status"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, 1, data.Get("user_id"))
// assert.Equal(t, 1, data.Get("users.选择商务负责人"))
// }
func TestOpenEmpty(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Open(1, 1)
data := maps.Of(wflow).Dot()
assert.Equal(t, false, data.Has("id"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
assert.Equal(t, "进行中", data.Get("node_status"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, 1, data.Get("user_id"))
assert.Equal(t, 1, data.Get("users.选择商务负责人"))
}
// func TestNext(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// wflow = assignFlow.Next(1, any.Of(wflow["id"]).CInt(), map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
// data := maps.Of(wflow).Dot()
// assert.Equal(t, int64(1), data.Get("id"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "项目负责人审批", data.Get("node_name"))
// assert.Equal(t, "进行中", data.Get("node_status"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, int64(2), data.Get("user_id"))
// assert.Equal(t, true, data.Has("users"))
// assert.Equal(t, "测试项目", data.Get("output.项目名称"))
// assert.Equal(t, "林明波", data.Get("output.商务负责人名称"))
func TestNext(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
wflow = assignFlow.Next(1, any.Of(wflow["id"]).CInt(), map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
data := maps.Of(wflow).Dot()
assert.Equal(t, int64(1), data.Get("id"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "项目负责人审批", data.Get("node_name"))
assert.Equal(t, "进行中", data.Get("node_status"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, int64(2), data.Get("user_id"))
assert.Equal(t, true, data.Has("users"))
assert.Equal(t, "测试项目", data.Get("output.项目名称"))
assert.Equal(t, "林明波", data.Get("output.商务负责人名称"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestNextWhen(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestNextWhen(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// // Next When
// wflow = assignFlow.Next(2, id, map[string]interface{}{"审批结果": "通过"})
// data := maps.Of(wflow).Dot()
// assert.Equal(t, int64(1), data.Get("id"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "审批通过", data.Get("node_name"))
// assert.Equal(t, "进行中", data.Get("node_status"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, int64(1), data.Get("user_id"))
// assert.Equal(t, true, data.Has("users"))
// assert.Equal(t, "测试项目", data.Get("output.项目名称"))
// assert.Equal(t, "林明波", data.Get("output.商务负责人名称"))
// assert.Equal(t, "通过", data.Get("output.审批结果"))
// Next When
wflow = assignFlow.Next(2, id, map[string]interface{}{"审批结果": "通过"})
data := maps.Of(wflow).Dot()
assert.Equal(t, int64(1), data.Get("id"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "审批通过", data.Get("node_name"))
assert.Equal(t, "进行中", data.Get("node_status"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, int64(1), data.Get("user_id"))
assert.Equal(t, true, data.Has("users"))
assert.Equal(t, "测试项目", data.Get("output.项目名称"))
assert.Equal(t, "林明波", data.Get("output.商务负责人名称"))
assert.Equal(t, "通过", data.Get("output.审批结果"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestGoto(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestGoto(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// wflow = assignFlow.Goto(2, id, "选择商务负责人", map[string]interface{}{"审批结果": "驳回"})
// data := maps.Of(wflow).Dot()
// assert.Equal(t, true, data.Has("id"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "选择商务负责人", data.Get("node_name"))
// assert.Equal(t, "进行中", data.Get("node_status"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, int64(1), data.Get("user_id"))
// assert.Equal(t, float64(1), data.Get("users.选择商务负责人"))
// assert.Equal(t, float64(2), data.Get("users.项目负责人审批"))
wflow = assignFlow.Goto(2, id, "选择商务负责人", map[string]interface{}{"审批结果": "驳回"})
data := maps.Of(wflow).Dot()
assert.Equal(t, true, data.Has("id"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
assert.Equal(t, "进行中", data.Get("node_status"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, int64(1), data.Get("user_id"))
assert.Equal(t, float64(1), data.Get("users.选择商务负责人"))
assert.Equal(t, float64(2), data.Get("users.项目负责人审批"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestReset(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestReset(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// wflow = assignFlow.Reset(2, id, map[string]interface{}{"审批结果": "驳回"})
// data := maps.Of(wflow).Dot()
// assert.Equal(t, true, data.Has("id"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "选择商务负责人", data.Get("node_name"))
// assert.Equal(t, "进行中", data.Get("node_status"))
// assert.Equal(t, "进行中", data.Get("status"))
// assert.Equal(t, int64(1), data.Get("user_id"))
// assert.Equal(t, float64(1), data.Get("users.选择商务负责人"))
// assert.Equal(t, float64(2), data.Get("users.项目负责人审批"))
wflow = assignFlow.Reset(2, id, map[string]interface{}{"审批结果": "驳回"})
data := maps.Of(wflow).Dot()
assert.Equal(t, true, data.Has("id"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
assert.Equal(t, "进行中", data.Get("node_status"))
assert.Equal(t, "进行中", data.Get("status"))
assert.Equal(t, int64(1), data.Get("user_id"))
assert.Equal(t, float64(1), data.Get("users.选择商务负责人"))
assert.Equal(t, float64(2), data.Get("users.项目负责人审批"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestDone(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestDone(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// wflow = assignFlow.Done(2, id, map[string]interface{}{"关闭原因": "测试完成"})
// data := maps.Of(wflow).Dot()
// assert.Equal(t, "已完成", data.Get("status"))
// assert.Equal(t, "测试完成", data.Get("output.关闭原因"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
wflow = assignFlow.Done(2, id, map[string]interface{}{"关闭原因": "测试完成"})
data := maps.Of(wflow).Dot()
assert.Equal(t, "已完成", data.Get("status"))
assert.Equal(t, "测试完成", data.Get("output.关闭原因"))
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestClose(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
func TestClose(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// wflow = assignFlow.Close(2, id, map[string]interface{}{"关闭原因": "测试关闭"})
// data := maps.Of(wflow).Dot()
// assert.Equal(t, "已关闭", data.Get("status"))
// assert.Equal(t, "测试关闭", data.Get("output.关闭原因"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
wflow = assignFlow.Close(2, id, map[string]interface{}{"关闭原因": "测试关闭"})
data := maps.Of(wflow).Dot()
assert.Equal(t, "已关闭", data.Get("status"))
assert.Equal(t, "测试关闭", data.Get("output.关闭原因"))
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
// func TestSetting(t *testing.T) {
// assignFlow := Select("assign")
// wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
// Data: map[string]interface{}{"id": 1, "name": "云主机"},
// Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
// })
func TestSetting(t *testing.T) {
assignFlow := Select("assign")
wflow := assignFlow.Save(1, "选择商务负责人", 1, Input{
Data: map[string]interface{}{"id": 1, "name": "云主机"},
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
})
// setting := assignFlow.Setting(1, 1)
// data := maps.Of(setting).Dot()
// assert.Equal(t, true, data.Get("read"))
// assert.Equal(t, "选择商务负责人", data.Get("node.label"))
// assert.Equal(t, true, data.Get("write"))
setting := assignFlow.Setting(1, 1)
data := maps.Of(setting).Dot()
assert.Equal(t, true, data.Get("read"))
assert.Equal(t, "选择商务负责人", data.Get("node.label"))
assert.Equal(t, true, data.Get("write"))
// id := any.Of(wflow["id"]).CInt()
// assignFlow.Next(1, id, map[string]interface{}{
// "项目名称": "测试项目",
// "商务负责人名称": "林明波",
// })
id := any.Of(wflow["id"]).CInt()
assignFlow.Next(1, id, map[string]interface{}{
"项目名称": "测试项目",
"商务负责人名称": "林明波",
})
// setting = assignFlow.Setting(1, 1)
// data = maps.Of(setting).Dot()
// assert.Equal(t, true, data.Get("read"))
// assert.Equal(t, false, data.Get("write"))
// assert.Equal(t, "项目负责人审批", data.Get("node.label"))
// assert.Equal(t, 2, data.Get("nodes.2.source"))
// assert.Equal(t, 2, data.Get("nodes.3.source"))
// assert.Equal(t, "assign", data.Get("name"))
// assert.Equal(t, "指派商务负责人", data.Get("label"))
setting = assignFlow.Setting(1, 1)
data = maps.Of(setting).Dot()
assert.Equal(t, true, data.Get("read"))
assert.Equal(t, false, data.Get("write"))
assert.Equal(t, "项目负责人审批", data.Get("node.label"))
assert.Equal(t, 2, data.Get("nodes.2.source"))
assert.Equal(t, 2, data.Get("nodes.3.source"))
assert.Equal(t, "assign", data.Get("name"))
assert.Equal(t, "指派商务负责人", data.Get("label"))
// // 清理数据
// capsule.Query().From("xiang_workflow").Truncate()
// }
// 清理数据
capsule.Query().From("xiang_workflow").Truncate()
}
func check(t *testing.T) {
keys := []string{}
for key, workflow := range WorkFlows {
keys = append(keys, key)
workflow.Reload()
}
assert.Equal(t, 1, len(keys))
}
// func check(t *testing.T) {
// keys := []string{}
// for key, workflow := range WorkFlows {
// keys = append(keys, key)
// workflow.Reload()
// }
// assert.Equal(t, 1, len(keys))
// }

View file

@ -1,16 +1,9 @@
package xfs
import (
"fmt"
"os"
"strings"
"testing"
"time"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"github.com/stretchr/testify/assert"
"github.com/yaoapp/gou"
"github.com/yaoapp/kun/any"
"github.com/yaoapp/yao/share"
)
@ -30,31 +23,33 @@ func init() {
}
func TestProcessGetToken(t *testing.T) {
args := []interface{}{"oss"}
process := gou.NewProcess("xiang.fs.GetToken", args...)
response := processGetToken(process)
assert.NotNil(t, response)
res := any.Of(response).Map()
assert.True(t, res.Has("AccessKeyId"))
assert.True(t, res.Has("AccessKeySecret"))
assert.True(t, res.Has("Expiration"))
assert.True(t, res.Has("SecurityToken"))
assert.True(t, res.Has("Endpoint"))
// the oss support will be using new process
// 使用token
client, err := oss.New(
res.Get("Endpoint").(string),
res.Get("AccessKeyId").(string),
res.Get("AccessKeySecret").(string),
oss.SecurityToken(res.Get("SecurityToken").(string)),
)
assert.Nil(t, err)
// args := []interface{}{"oss"}
// process := gou.NewProcess("xiang.fs.GetToken", args...)
// response := processGetToken(process)
// assert.NotNil(t, response)
// res := any.Of(response).Map()
// assert.True(t, res.Has("AccessKeyId"))
// assert.True(t, res.Has("AccessKeySecret"))
// assert.True(t, res.Has("Expiration"))
// assert.True(t, res.Has("SecurityToken"))
// assert.True(t, res.Has("Endpoint"))
bucket, err := client.Bucket("image-appcook")
assert.Nil(t, err)
// // 使用token
// client, err := oss.New(
// res.Get("Endpoint").(string),
// res.Get("AccessKeyId").(string),
// res.Get("AccessKeySecret").(string),
// oss.SecurityToken(res.Get("SecurityToken").(string)),
// )
// assert.Nil(t, err)
// 上传字符串。
now := fmt.Sprintf("%d", time.Now().UnixNano())
err = bucket.PutObject("xiang/unit-test."+now+".txt", strings.NewReader(now))
assert.Nil(t, err)
// bucket, err := client.Bucket("image-appcook")
// assert.Nil(t, err)
// // 上传字符串。
// now := fmt.Sprintf("%d", time.Now().UnixNano())
// err = bucket.PutObject("xiang/unit-test."+now+".txt", strings.NewReader(now))
// assert.Nil(t, err)
}