func (s *SnapTestSuite) TestLocalSnapSimple(c *C) { snapYaml, err := s.makeInstalledMockSnap() c.Assert(err, IsNil) snap, err := NewInstalledSnapPart(snapYaml, testOrigin) c.Assert(err, IsNil) c.Assert(snap, NotNil) c.Check(snap.Name(), Equals, "hello-app") c.Check(snap.Version(), Equals, "1.10") c.Check(snap.IsActive(), Equals, false) c.Check(snap.Description(), Equals, "Hello") c.Check(snap.IsInstalled(), Equals, true) apps := snap.Apps() c.Assert(apps, HasLen, 2) c.Assert(apps["svc1"].Name, Equals, "svc1") // ensure we get valid Date() st, err := os.Stat(snap.basedir) c.Assert(err, IsNil) c.Assert(snap.Date(), Equals, st.ModTime()) c.Assert(snap.basedir, Equals, filepath.Join(s.tempdir, "snaps", helloAppComposedName, "1.10")) c.Assert(snap.InstalledSize(), Not(Equals), -1) }
func (s *SnapTestSuite) TestServicesWithPorts(c *C) { const packageHello = `name: hello-app version: 1.10 apps: hello: command: bin/hello svc1: command: svc1 type: forking description: "Service #1" ports: external: ui: port: 8080/tcp nothing: port: 8081/tcp negotiable: yes svc2: command: svc2 type: forking description: "Service #2" ` yamlFile, err := makeInstalledMockSnap(s.tempdir, packageHello) c.Assert(err, IsNil) snap, err := NewInstalledSnapPart(yamlFile, testOrigin) c.Assert(err, IsNil) c.Assert(snap, NotNil) c.Assert(snap.Name(), Equals, "hello-app") c.Assert(snap.Origin(), Equals, testOrigin) c.Assert(snap.Version(), Equals, "1.10") c.Assert(snap.IsActive(), Equals, false) apps := snap.Apps() c.Assert(apps, HasLen, 3) c.Assert(apps["svc1"].Name, Equals, "svc1") c.Assert(apps["svc1"].Description, Equals, "Service #1") external1Ui, ok := apps["svc1"].Ports.External["ui"] c.Assert(ok, Equals, true) c.Assert(external1Ui.Port, Equals, "8080/tcp") c.Assert(external1Ui.Negotiable, Equals, false) external1Nothing, ok := apps["svc1"].Ports.External["nothing"] c.Assert(ok, Equals, true) c.Assert(external1Nothing.Port, Equals, "8081/tcp") c.Assert(external1Nothing.Negotiable, Equals, true) c.Assert(apps["svc2"].Name, Equals, "svc2") c.Assert(apps["svc2"].Description, Equals, "Service #2") // ensure we get valid Date() st, err := os.Stat(snap.basedir) c.Assert(err, IsNil) c.Assert(snap.Date(), Equals, st.ModTime()) c.Assert(snap.basedir, Equals, filepath.Join(s.tempdir, "snaps", helloAppComposedName, "1.10")) c.Assert(snap.InstalledSize(), Not(Equals), -1) }