test: add test for LoadOrStoreVisitMap
This commit is contained in:
		
							parent
							
								
									9d5c68e410
								
							
						
					
					
						commit
						6e3ca2d1aa
					
				@ -2,12 +2,13 @@ package tests_test
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
						"gorm.io/gorm"
 | 
				
			||||||
 | 
						"gorm.io/gorm/callbacks"
 | 
				
			||||||
 | 
						. "gorm.io/gorm/utils/tests"
 | 
				
			||||||
	"reflect"
 | 
						"reflect"
 | 
				
			||||||
	"runtime"
 | 
						"runtime"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					 | 
				
			||||||
	"gorm.io/gorm"
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func assertCallbacks(v interface{}, fnames []string) (result bool, msg string) {
 | 
					func assertCallbacks(v interface{}, fnames []string) (result bool, msg string) {
 | 
				
			||||||
@ -168,3 +169,26 @@ func TestCallbacks(t *testing.T) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestLoadOrStoreVisitMap(t *testing.T) {
 | 
				
			||||||
 | 
						var vistMap callbacks.VisitMap
 | 
				
			||||||
 | 
						var loaded bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						type testM struct {
 | 
				
			||||||
 | 
							Name string
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						t1 := testM{Name: "t1"}
 | 
				
			||||||
 | 
						t2 := testM{Name: "t2"}
 | 
				
			||||||
 | 
						t3 := testM{Name: "t3"}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						vistMap = make(callbacks.VisitMap)
 | 
				
			||||||
 | 
						loaded = callbacks.LoadOrStoreVisitMap(&vistMap, &t1)
 | 
				
			||||||
 | 
						AssertEqual(t, loaded, false)
 | 
				
			||||||
 | 
						loaded = callbacks.LoadOrStoreVisitMap(&vistMap, &t1)
 | 
				
			||||||
 | 
						AssertEqual(t, loaded, true)
 | 
				
			||||||
 | 
						// t1 already exist but t2 not
 | 
				
			||||||
 | 
						loaded = callbacks.LoadOrStoreVisitMap(&vistMap, []*testM{&t1, &t2, &t3})
 | 
				
			||||||
 | 
						AssertEqual(t, loaded, false)
 | 
				
			||||||
 | 
						loaded = callbacks.LoadOrStoreVisitMap(&vistMap, []*testM{&t2, &t3})
 | 
				
			||||||
 | 
						AssertEqual(t, loaded, true)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user