github.com/Lephar/snapd@v0.0.0-20210825215435-c7fba9cef4d2/overlord/configstate/configcore/utils_test.go (about) 1 // -*- Mode: Go; indent-tabs-mode: t -*- 2 3 /* 4 * Copyright (C) 2017 Canonical Ltd 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 3 as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 */ 19 20 package configcore_test 21 22 import ( 23 "bytes" 24 25 . "gopkg.in/check.v1" 26 27 "github.com/snapcore/snapd/overlord/configstate/configcore" 28 ) 29 30 type utilsSuite struct{} 31 32 var _ = Suite(&utilsSuite{}) 33 34 func (s *utilsSuite) TestUpdateKeyValueStreamNoNewConfig(c *C) { 35 in := bytes.NewBufferString("foo=bar") 36 newConfig := map[string]string{} 37 supportedConfigKeys := map[string]bool{} 38 39 toWrite, err := configcore.UpdateKeyValueStream(in, supportedConfigKeys, newConfig) 40 c.Check(err, IsNil) 41 c.Check(toWrite, IsNil) 42 } 43 44 func (s *utilsSuite) TestUpdateKeyValueStreamConfigNotInAllConfig(c *C) { 45 in := bytes.NewBufferString("") 46 newConfig := map[string]string{"unsupported-options": "cannot be set"} 47 supportedConfigKeys := map[string]bool{ 48 "foo": true, 49 } 50 51 _, err := configcore.UpdateKeyValueStream(in, supportedConfigKeys, newConfig) 52 c.Check(err, ErrorMatches, `cannot set unsupported configuration value "unsupported-options"`) 53 } 54 55 func (s *utilsSuite) TestUpdateKeyValueStreamOneChange(c *C) { 56 in := bytes.NewBufferString("foo=bar") 57 newConfig := map[string]string{"foo": "baz"} 58 supportedConfigKeys := map[string]bool{ 59 "foo": true, 60 } 61 62 toWrite, err := configcore.UpdateKeyValueStream(in, supportedConfigKeys, newConfig) 63 c.Check(err, IsNil) 64 c.Check(toWrite, DeepEquals, []string{"foo=baz"}) 65 }