MCPcopy Create free account
hub / github.com/docker/cli / TestPluginConfig

Function TestPluginConfig

cli/config/configfile/file_test.go:696–759  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

694}
695
696func TestPluginConfig(t *testing.T) {
697 configFile := New("test-plugin")
698 defer os.Remove("test-plugin")
699
700 // Populate some initial values
701 configFile.SetPluginConfig("plugin1", "data1", "some string")
702 configFile.SetPluginConfig("plugin1", "data2", "42")
703 configFile.SetPluginConfig("plugin2", "data3", "some other string")
704
705 // Save a config file with some plugin config
706 err := configFile.Save()
707 assert.NilError(t, err)
708
709 // Read it back and check it has the expected content
710 cfg, err := os.ReadFile("test-plugin")
711 assert.NilError(t, err)
712 golden.Assert(t, string(cfg), "plugin-config.golden")
713
714 // Load it, resave and check again that the content is
715 // preserved through a load/save cycle.
716 configFile = New("test-plugin2")
717 defer os.Remove("test-plugin2")
718 assert.NilError(t, configFile.LoadFromReader(bytes.NewReader(cfg)))
719 err = configFile.Save()
720 assert.NilError(t, err)
721 cfg, err = os.ReadFile("test-plugin2")
722 assert.NilError(t, err)
723 golden.Assert(t, string(cfg), "plugin-config.golden")
724
725 // Check that the contents was reloaded properly
726 v, ok := configFile.PluginConfig("plugin1", "data1")
727 assert.Assert(t, ok)
728 assert.Equal(t, v, "some string")
729 v, ok = configFile.PluginConfig("plugin1", "data2")
730 assert.Assert(t, ok)
731 assert.Equal(t, v, "42")
732 v, ok = configFile.PluginConfig("plugin1", "data3")
733 assert.Assert(t, !ok)
734 assert.Equal(t, v, "")
735 v, ok = configFile.PluginConfig("plugin2", "data3")
736 assert.Assert(t, ok)
737 assert.Equal(t, v, "some other string")
738 v, ok = configFile.PluginConfig("plugin2", "data4")
739 assert.Assert(t, !ok)
740 assert.Equal(t, v, "")
741 v, ok = configFile.PluginConfig("plugin3", "data5")
742 assert.Assert(t, !ok)
743 assert.Equal(t, v, "")
744
745 // Add, remove and modify
746 configFile.SetPluginConfig("plugin1", "data1", "some replacement string") // replacing a key
747 configFile.SetPluginConfig("plugin1", "data2", "") // deleting a key
748 configFile.SetPluginConfig("plugin1", "data3", "some additional string") // new key
749 configFile.SetPluginConfig("plugin2", "data3", "") // delete the whole plugin, since this was the only data
750 configFile.SetPluginConfig("plugin3", "data5", "a new plugin") // add a new plugin
751
752 err = configFile.Save()
753 assert.NilError(t, err)

Callers

nothing calls this directly

Calls 6

SetPluginConfigMethod · 0.80
LoadFromReaderMethod · 0.80
PluginConfigMethod · 0.80
NewFunction · 0.70
RemoveMethod · 0.65
SaveMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…