1
0
mirror of https://github.com/minio/mc.git synced 2025-11-13 12:22:45 +03:00
Files
mc/pkg/qdb/qdb_test.go
2015-04-11 16:35:29 -07:00

107 lines
3.2 KiB
Go

/*
* QConfig - Quick way to implement a configuration file
*
* Minimalist Object Storage, (C) 2015 Minio, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package qdb
import (
"os"
"testing"
. "github.com/minio-io/check"
)
func Test(t *testing.T) { TestingT(t) }
type MySuite struct{}
var _ = Suite(&MySuite{})
func (s *MySuite) TestVersion(c *C) {
cfg := NewStore(Version{1, 0, 0})
c.Assert(cfg.GetVersion(), DeepEquals, Version{1, 0, 0})
c.Assert(Str2Version("1.0.0"), DeepEquals, cfg.GetVersion())
}
func (s *MySuite) TestSaveLoad(c *C) {
defer os.RemoveAll("test.json")
version := Version{1, 0, 0}
cfg := NewStore(version)
cfg.SetFloat64("Pi", 3.1415)
cfg.Save("test.json")
newCfg := NewStore(version)
newCfg.Load("test.json")
pi := newCfg.GetFloat64("Pi")
c.Assert(pi, Equals, 3.1415)
}
func (s *MySuite) TestGetSet(c *C) {
version := Version{1, 0, 0}
cfg := NewStore(version)
cfg.SetInt("Q", 42)
c.Assert(cfg.GetInt("Q"), Equals, 42)
cfg.SetIntSlice("Odd", []int{1, 3, 5, 7, 9})
c.Assert(cfg.GetIntSlice("Odd"), DeepEquals, []int{1, 3, 5, 7, 9})
cfg.SetFloat64("Pi", 3.1415)
c.Assert(cfg.GetFloat64("Pi"), Equals, 3.1415)
cfg.SetFloat64Slice("Pi", []float64{3.1415, 2.414})
c.Assert(cfg.GetFloat64Slice("Pi"), DeepEquals, []float64{3.1415, 2.414})
cfg.SetString("Grand Nagus", "Zek")
c.Assert(cfg.GetString("Grand Nagus"), Equals, "Zek")
cfg.SetStringSlice("Ferengi", []string{"Zek", "Brunt", "Quark", "Rom", "Nog", "Ishka"})
c.Assert(cfg.GetStringSlice("Ferengi"), DeepEquals, []string{"Zek", "Brunt", "Quark", "Rom", "Nog", "Ishka"})
startrek1 := map[string]string{"Borg": "7of9", "Data": "Measure of a Man"}
startrek2 := map[string]string{"Borg": "7of9", "Data": "Measure of a Man"}
cfg.SetMapString("startrek", startrek1)
c.Assert(cfg.GetMapString("startrek"), DeepEquals, startrek2)
startrek3 := map[string][]string{
"Quadrants": {"Alpha", "Beta", "Gamma", "Delta"},
"Aliens": {"Dominion", "Borg", "Klingon", "Romulan"},
}
startrek4 := map[string][]string{
"Quadrants": {"Alpha", "Beta", "Gamma", "Delta"},
"Aliens": {"Dominion", "Borg", "Klingon", "Romulan"},
}
cfg.SetMapStringSlice("startrek", startrek3)
c.Assert(cfg.GetMapStringSlice("startrek"), DeepEquals, startrek4)
startrek5 := map[string][]string{
"Quadrants": {"Beta", "Gamma", "Delta"},
"Aliens": {"Dominion", "Borg", "Klingon", "Romulan"},
}
startrek6 := map[string][]string{
"Quadrants": {"Alpha", "Beta", "Gamma", "Delta"},
"Aliens": {"Dominion", "Borg", "Klingon", "Romulan"},
}
cfg.SetMapStringSlice("startrek", startrek5)
c.Assert(cfg.GetMapStringSlice("startrek"), Not(DeepEquals), startrek6)
c.Assert(cfg.GetMapStringSlice("Startrek"), IsNil)
}