github.com/duskeagle/pop@v4.10.1-0.20190417200916-92f2b794aab5+incompatible/belongs_to_test.go (about)

     1  package pop
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func Test_BelongsTo(t *testing.T) {
    10  	r := require.New(t)
    11  
    12  	q := PDB.BelongsTo(&User{ID: 1})
    13  
    14  	m := &Model{Value: &Enemy{}}
    15  
    16  	sql, _ := q.ToSQL(m)
    17  	r.Equal(ts("SELECT enemies.A FROM enemies AS enemies WHERE user_id = ?"), sql)
    18  }
    19  
    20  func Test_BelongsToAs(t *testing.T) {
    21  	r := require.New(t)
    22  
    23  	q := PDB.BelongsToAs(&User{ID: 1}, "u_id")
    24  
    25  	m := &Model{Value: &Enemy{}}
    26  
    27  	sql, _ := q.ToSQL(m)
    28  	r.Equal(ts("SELECT enemies.A FROM enemies AS enemies WHERE u_id = ?"), sql)
    29  }
    30  
    31  func Test_BelongsToThrough(t *testing.T) {
    32  	r := require.New(t)
    33  
    34  	q := PDB.BelongsToThrough(&User{ID: 1}, &Friend{})
    35  	qs := "SELECT enemies.A FROM enemies AS enemies, good_friends AS good_friends WHERE good_friends.user_id = ? AND enemies.id = good_friends.enemy_id"
    36  
    37  	m := &Model{Value: &Enemy{}}
    38  	sql, _ := q.ToSQL(m)
    39  	r.Equal(ts(qs), sql)
    40  }