Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张磊
/
FileStorageBeego
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
690d77e9
authored
2013-11-26 21:34:40 +0800
by
slene
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
orm test add extra custom JsonField
1 parent
bcc8f606
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
3 deletions
orm/models_test.go
orm/orm_test.go
orm/models_test.go
View file @
690d77e
package
orm
import
(
"encoding/json"
"fmt"
"os"
"strings"
...
...
@@ -11,7 +12,7 @@ import (
_
"github.com/mattn/go-sqlite3"
)
// A
true/false
field.
// A
slice string
field.
type
SliceStringField
[]
string
func
(
e
SliceStringField
)
Value
()
[]
string
{
...
...
@@ -57,10 +58,39 @@ func (e *SliceStringField) RawValue() interface{} {
return
e
.
String
()
}
func
(
e
*
SliceStringField
)
Clean
()
error
{
var
_
Fielder
=
new
(
SliceStringField
)
// A json field.
type
JsonField
struct
{
Name
string
Data
string
}
func
(
e
*
JsonField
)
String
()
string
{
data
,
_
:=
json
.
Marshal
(
e
)
return
string
(
data
)
}
func
(
e
*
JsonField
)
FieldType
()
int
{
return
TypeTextField
}
func
(
e
*
JsonField
)
SetRaw
(
value
interface
{})
error
{
switch
d
:=
value
.
(
type
)
{
case
string
:
return
json
.
Unmarshal
([]
byte
(
d
),
e
)
default
:
return
fmt
.
Errorf
(
"<JsonField.SetRaw> unknown value `%v`"
,
value
)
}
return
nil
}
func
(
e
*
JsonField
)
RawValue
()
interface
{}
{
return
e
.
String
()
}
var
_
Fielder
=
new
(
JsonField
)
type
Data
struct
{
Id
int
Boolean
bool
...
...
@@ -130,6 +160,7 @@ type User struct {
ShouldSkip
string
`orm:"-"`
Nums
int
Langs
SliceStringField
`orm:"size(100)"`
Extra
JsonField
`orm:"type(text)"`
}
func
(
u
*
User
)
TableIndex
()
[][]
string
{
...
...
orm/orm_test.go
View file @
690d77e
...
...
@@ -478,7 +478,9 @@ func TestCustomField(t *testing.T) {
throwFailNow
(
t
,
err
)
user
.
Langs
=
append
(
user
.
Langs
,
"zh-CN"
,
"en-US"
)
_
,
err
=
dORM
.
Update
(
&
user
,
"Langs"
)
user
.
Extra
.
Name
=
"beego"
user
.
Extra
.
Data
=
"orm"
_
,
err
=
dORM
.
Update
(
&
user
,
"Langs"
,
"Extra"
)
throwFailNow
(
t
,
err
)
user
=
User
{
Id
:
2
}
...
...
@@ -487,6 +489,9 @@ func TestCustomField(t *testing.T) {
throwFailNow
(
t
,
AssertIs
(
len
(
user
.
Langs
),
2
))
throwFailNow
(
t
,
AssertIs
(
user
.
Langs
[
0
],
"zh-CN"
))
throwFailNow
(
t
,
AssertIs
(
user
.
Langs
[
1
],
"en-US"
))
throwFailNow
(
t
,
AssertIs
(
user
.
Extra
.
Name
,
"beego"
))
throwFailNow
(
t
,
AssertIs
(
user
.
Extra
.
Data
,
"orm"
))
}
func
TestExpr
(
t
*
testing
.
T
)
{
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment