| 272 | } |
| 273 | |
| 274 | func TestStackUpdate(t *testing.T) { |
| 275 | file := fmt.Sprintf("test_db_%d", time.Now().UnixNano()) |
| 276 | s, err := OpenStack(file) |
| 277 | if err != nil { |
| 278 | t.Error(err) |
| 279 | } |
| 280 | defer s.Drop() |
| 281 | |
| 282 | for i := 1; i <= 10; i++ { |
| 283 | if _, err = s.PushString(fmt.Sprintf("value for item %d", i)); err != nil { |
| 284 | t.Error(err) |
| 285 | } |
| 286 | } |
| 287 | |
| 288 | item, err := s.PeekByID(3) |
| 289 | if err != nil { |
| 290 | t.Error(err) |
| 291 | } |
| 292 | |
| 293 | oldCompStr := "value for item 3" |
| 294 | newCompStr := "new value for item 3" |
| 295 | |
| 296 | if item.ToString() != oldCompStr { |
| 297 | t.Errorf("Expected string to be '%s', got '%s'", oldCompStr, item.ToString()) |
| 298 | } |
| 299 | |
| 300 | updatedItem, err := s.Update(item.ID, []byte(newCompStr)) |
| 301 | if err != nil { |
| 302 | t.Error(err) |
| 303 | } |
| 304 | |
| 305 | if updatedItem.ToString() != newCompStr { |
| 306 | t.Errorf("Expected current item value to be '%s', got '%s'", newCompStr, item.ToString()) |
| 307 | } |
| 308 | |
| 309 | newItem, err := s.PeekByID(3) |
| 310 | if err != nil { |
| 311 | t.Error(err) |
| 312 | } |
| 313 | |
| 314 | if newItem.ToString() != newCompStr { |
| 315 | t.Errorf("Expected new item value to be '%s', got '%s'", newCompStr, item.ToString()) |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | func TestStackUpdateString(t *testing.T) { |
| 320 | file := fmt.Sprintf("test_db_%d", time.Now().UnixNano()) |