Guest User

Untitled

a guest
Jun 20th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. (defmacro demo-insertion-style [insert-form] ; change to handle string form, provided
  2. `(fact
  3. (-> (datastate :countries) ~insert-form) => irrelevant
  4. (datastate :countries) => (table-contains {:region "North America" :name "USA" })))
  5.  
  6. (with-ground "Demonstrate and check the various ways to insert into datastate"
  7. (datastate :countries) =starts=> (empty-table :countries)
  8. (do
  9. (demo-insertion-style "Most convenient for typing"
  10. (insert :region "North America" :name "USA"))
  11.  
  12. (demo-insertion-style "Passing in a map is easier for programs"
  13. (insert {:region "North America" :name "USA"}))
  14.  
  15. (demo-insertion-style "Give values - columns are implicit"
  16. (insert ["North America" "USA"]))
  17.  
  18. (demo-insertion-style "Separate column values and names"
  19. (insert [:region :name] ["North America" "USA"]))
  20.  
  21. (demo-insertion-style "Insert defaults when no arguments"
  22. (insert)
  23. (provided
  24. (table-column-default :countries :region) =starts=> "North America"
  25. (table-column-default :countries :name) =starts=> "USA"))
  26.  
  27. (demo-insertion-style "Alternately, use empty map to insert defaults"
  28. (insert {})
  29. (provided
  30. (table-column-default :countries :region) =starts=> "North America"
  31. (table-column-default :countries :name) =starts=> "USA"))
  32.  
  33. (demo-insertion-style "pulling values in from another datastate"
  34. (insert (datastate :old-countries))
  35. (provided
  36. (datastate :old-countries) =starts=> (table-contains {:region "North America" :name "USA" })))
  37.  
  38. (demo-insertion-style "pulling selected values in from another datastate"
  39. (insert [:region :name] (datastate :old-countries))
  40. (provided
  41. (datastate :old-countries) =starts=> (table-contains {:region "North America" :name "USA" })))
  42. ))
Add Comment
Please, Sign In to add comment