github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/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 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/container" 11 "github.com/juju/juju/container/factory" 12 "github.com/juju/juju/core/instance" 13 "github.com/juju/juju/testing" 14 ) 15 16 type factorySuite struct { 17 testing.BaseSuite 18 } 19 20 var _ = gc.Suite(&factorySuite{}) 21 22 func (*factorySuite) TestNewContainerManager(c *gc.C) { 23 for _, test := range []struct { 24 containerType instance.ContainerType 25 valid bool 26 }{{ 27 containerType: instance.LXD, 28 valid: true, 29 }, { 30 containerType: instance.KVM, 31 valid: true, 32 }, { 33 containerType: instance.NONE, 34 valid: false, 35 }, { 36 containerType: instance.ContainerType("other"), 37 valid: false, 38 }} { 39 conf := container.ManagerConfig{container.ConfigModelUUID: testing.ModelTag.Id()} 40 manager, err := factory.NewContainerManager(test.containerType, conf) 41 if test.valid { 42 c.Assert(err, jc.ErrorIsNil) 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 }