github.com/mithrandie/csvq@v1.18.1/lib/query/uncommitted_views_test.go (about) 1 package query 2 3 import ( 4 "reflect" 5 "sync" 6 "testing" 7 ) 8 9 var preCreatedFileInfo = &FileInfo{Path: "pre_created.txt"} 10 var preUpdatedFileInfo = &FileInfo{Path: "pre_updated.txt"} 11 12 func TestUncommittedViewMap_SetForCreatedView(t *testing.T) { 13 m := &UncommittedViews{ 14 mtx: &sync.RWMutex{}, 15 Created: map[string]*FileInfo{ 16 "PRE_CREATED.TXT": {Path: "pre_created.txt"}, 17 }, 18 Updated: map[string]*FileInfo{ 19 "PRE_UPDATED.TXT": {Path: "pre_updated.txt"}, 20 }, 21 } 22 23 info := &FileInfo{ 24 Path: "create.txt", 25 } 26 expect := &UncommittedViews{ 27 mtx: &sync.RWMutex{}, 28 Created: map[string]*FileInfo{ 29 "PRE_CREATED.TXT": {Path: "pre_created.txt"}, 30 "CREATE.TXT": {Path: "create.txt"}, 31 }, 32 Updated: map[string]*FileInfo{ 33 "PRE_UPDATED.TXT": {Path: "pre_updated.txt"}, 34 }, 35 } 36 m.SetForCreatedView(info) 37 if !reflect.DeepEqual(m, expect) { 38 t.Errorf("map = %v, want %v", m, expect) 39 } 40 41 m.SetForCreatedView(preCreatedFileInfo) 42 if !reflect.DeepEqual(m, expect) { 43 t.Errorf("map = %v, want %v", m, expect) 44 } 45 46 m.SetForCreatedView(preUpdatedFileInfo) 47 if !reflect.DeepEqual(m, expect) { 48 t.Errorf("map = %v, want %v", m, expect) 49 } 50 } 51 52 func TestUncommittedViewMap_SetForUpdatedView(t *testing.T) { 53 m := &UncommittedViews{ 54 mtx: &sync.RWMutex{}, 55 Created: map[string]*FileInfo{ 56 "PRE_CREATED.TXT": {Path: "pre_created.txt"}, 57 }, 58 Updated: map[string]*FileInfo{ 59 "PRE_UPDATED.TXT": {Path: "pre_updated.txt"}, 60 }, 61 } 62 63 info := &FileInfo{ 64 Path: "update.txt", 65 } 66 expect := &UncommittedViews{ 67 mtx: &sync.RWMutex{}, 68 Created: map[string]*FileInfo{ 69 "PRE_CREATED.TXT": {Path: "pre_created.txt"}, 70 }, 71 Updated: map[string]*FileInfo{ 72 "PRE_UPDATED.TXT": {Path: "pre_updated.txt"}, 73 "UPDATE.TXT": {Path: "update.txt"}, 74 }, 75 } 76 m.SetForUpdatedView(info) 77 if !reflect.DeepEqual(m, expect) { 78 t.Errorf("map = %v, want %v", m, expect) 79 } 80 81 m.SetForUpdatedView(preCreatedFileInfo) 82 if !reflect.DeepEqual(m, expect) { 83 t.Errorf("map = %v, want %v", m, expect) 84 } 85 86 m.SetForUpdatedView(preUpdatedFileInfo) 87 if !reflect.DeepEqual(m, expect) { 88 t.Errorf("map = %v, want %v", m, expect) 89 } 90 } 91 92 func TestUncommittedViewMap_Unset(t *testing.T) { 93 m := &UncommittedViews{ 94 mtx: &sync.RWMutex{}, 95 Created: map[string]*FileInfo{ 96 "PRE_CREATED.TXT": {Path: "pre_created.txt"}, 97 }, 98 Updated: map[string]*FileInfo{ 99 "PRE_UPDATED.TXT": {Path: "pre_updated.txt"}, 100 }, 101 } 102 103 expect := &UncommittedViews{ 104 mtx: &sync.RWMutex{}, 105 Created: map[string]*FileInfo{}, 106 Updated: map[string]*FileInfo{ 107 "PRE_UPDATED.TXT": {Path: "pre_updated.txt"}, 108 }, 109 } 110 111 m.Unset(preCreatedFileInfo) 112 if !reflect.DeepEqual(m, expect) { 113 t.Errorf("map = %v, want %v", m, expect) 114 } 115 116 expect = &UncommittedViews{ 117 mtx: &sync.RWMutex{}, 118 Created: map[string]*FileInfo{}, 119 Updated: map[string]*FileInfo{}, 120 } 121 m.Unset(preUpdatedFileInfo) 122 if !reflect.DeepEqual(m, expect) { 123 t.Errorf("map = %v, want %v", m, expect) 124 } 125 } 126 127 func TestUncommittedViewMap_IsEmpty(t *testing.T) { 128 var expect bool 129 130 m := &UncommittedViews{ 131 mtx: &sync.RWMutex{}, 132 Created: map[string]*FileInfo{ 133 "PRE_CREATED.TXT": {Path: "pre_created.txt"}, 134 }, 135 } 136 expect = false 137 result := m.IsEmpty() 138 if result != expect { 139 t.Errorf("result = %t, want %t", result, expect) 140 } 141 142 m = &UncommittedViews{ 143 mtx: &sync.RWMutex{}, 144 Updated: map[string]*FileInfo{ 145 "PRE_UPDATED.TXT": {Path: "pre_updated.txt"}, 146 }, 147 } 148 expect = false 149 result = m.IsEmpty() 150 if result != expect { 151 t.Errorf("result = %t, want %t", result, expect) 152 } 153 154 m = &UncommittedViews{ 155 mtx: &sync.RWMutex{}, 156 } 157 expect = true 158 result = m.IsEmpty() 159 if result != expect { 160 t.Errorf("result = %t, want %t", result, expect) 161 } 162 }