| 915 | |
| 916 | #[test] |
| 917 | fn test_add_or_modify() { |
| 918 | let mut kargs = Cmdline::from(b"foo=bar"); |
| 919 | |
| 920 | // add new |
| 921 | assert!(matches!(kargs.add_or_modify(¶m("baz")), Action::Added)); |
| 922 | let mut iter = kargs.iter(); |
| 923 | assert_eq!(iter.next(), Some(param("foo=bar"))); |
| 924 | assert_eq!(iter.next(), Some(param("baz"))); |
| 925 | assert_eq!(iter.next(), None); |
| 926 | |
| 927 | // modify existing |
| 928 | assert!(matches!( |
| 929 | kargs.add_or_modify(¶m("foo=fuz")), |
| 930 | Action::Modified |
| 931 | )); |
| 932 | iter = kargs.iter(); |
| 933 | assert_eq!(iter.next(), Some(param("foo=fuz"))); |
| 934 | assert_eq!(iter.next(), Some(param("baz"))); |
| 935 | assert_eq!(iter.next(), None); |
| 936 | |
| 937 | // already exists with same value returns false and doesn't |
| 938 | // modify anything |
| 939 | assert!(matches!( |
| 940 | kargs.add_or_modify(¶m("foo=fuz")), |
| 941 | Action::Existed |
| 942 | )); |
| 943 | iter = kargs.iter(); |
| 944 | assert_eq!(iter.next(), Some(param("foo=fuz"))); |
| 945 | assert_eq!(iter.next(), Some(param("baz"))); |
| 946 | assert_eq!(iter.next(), None); |
| 947 | } |
| 948 | |
| 949 | #[test] |
| 950 | fn test_add_or_modify_empty_cmdline() { |