launchpad.net/~rogpeppe/juju-core/500-errgo-fix@v0.0.0-20140213181702-000000002356/container/factory/factory_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package factory_test 5 6 import ( 7 gc "launchpad.net/gocheck" 8 9 "launchpad.net/juju-core/container" 10 "launchpad.net/juju-core/container/factory" 11 "launchpad.net/juju-core/instance" 12 "launchpad.net/juju-core/testing/testbase" 13 ) 14 15 type factorySuite struct { 16 testbase.LoggingSuite 17 } 18 19 var _ = gc.Suite(&factorySuite{}) 20 21 func (*factorySuite) TestNewContainerManager(c *gc.C) { 22 conf := container.ManagerConfig{Name: "test"} 23 24 for _, test := range []struct { 25 containerType instance.ContainerType 26 valid bool 27 }{{ 28 containerType: instance.LXC, 29 valid: true, 30 }, { 31 containerType: instance.KVM, 32 valid: true, 33 }, { 34 containerType: instance.NONE, 35 valid: false, 36 }, { 37 containerType: instance.ContainerType("other"), 38 valid: false, 39 }} { 40 manager, err := factory.NewContainerManager(test.containerType, conf) 41 if test.valid { 42 c.Assert(err, gc.IsNil) 43 c.Assert(manager, gc.NotNil) 44 } else { 45 c.Assert(err, gc.ErrorMatches, `unknown container type: ".*"`) 46 c.Assert(manager, gc.IsNil) 47 } 48 } 49 }