| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- package grapher_test
- import (
- "io/ioutil"
- "testing"
- "github.com/porter-dev/porter/internal/helm/grapher"
- )
- var c7 = grapher.Object{
- Kind: "StatefulSet",
- Relations: grapher.Relations{
- ControlRels: []grapher.ControlRel{
- grapher.ControlRel{
- Relation: grapher.Relation{
- Source: 3,
- Target: 4,
- },
- Replicas: 2,
- },
- grapher.ControlRel{
- Relation: grapher.Relation{
- Source: 3,
- Target: 5,
- },
- Replicas: 2,
- },
- },
- LabelRels: []grapher.LabelRel{
- grapher.LabelRel{
- Relation: grapher.Relation{
- Source: 3,
- Target: 4,
- },
- },
- grapher.LabelRel{
- Relation: grapher.Relation{
- Source: 3,
- Target: 5,
- },
- },
- },
- },
- }
- var c5 = grapher.Object{
- Kind: "Pod",
- Relations: grapher.Relations{
- ControlRels: []grapher.ControlRel{
- grapher.ControlRel{
- Relation: grapher.Relation{
- Source: 3,
- Target: 4,
- },
- Replicas: 2,
- },
- },
- LabelRels: []grapher.LabelRel{
- grapher.LabelRel{
- Relation: grapher.Relation{
- Source: 1,
- Target: 4,
- },
- },
- grapher.LabelRel{
- Relation: grapher.Relation{
- Source: 2,
- Target: 4,
- },
- },
- grapher.LabelRel{
- Relation: grapher.Relation{
- Source: 3,
- Target: 4,
- },
- },
- },
- },
- }
- var c6 = grapher.Object{
- Kind: "Pod",
- Relations: grapher.Relations{
- ControlRels: []grapher.ControlRel{
- grapher.ControlRel{
- Relation: grapher.Relation{
- Source: 3,
- Target: 5,
- },
- Replicas: 2,
- },
- },
- LabelRels: []grapher.LabelRel{
- grapher.LabelRel{
- Relation: grapher.Relation{
- Source: 1,
- Target: 5,
- },
- },
- grapher.LabelRel{
- Relation: grapher.Relation{
- Source: 2,
- Target: 5,
- },
- },
- grapher.LabelRel{
- Relation: grapher.Relation{
- Source: 3,
- Target: 5,
- },
- },
- },
- },
- }
- var expControlRels1 = []grapher.Object{
- c1, c2, c3, c7, c5, c6,
- }
- type test struct {
- Expected []grapher.Object
- FilePath string
- }
- func TestControlRels(t *testing.T) {
- ts := []test{
- test{
- Expected: expControlRels1,
- FilePath: "./test_yaml/cassandra.yaml",
- },
- }
- for _, r := range ts {
- // Load in yaml from test files
- file, err := ioutil.ReadFile(r.FilePath)
- if err != nil {
- t.Errorf("Error reading file %s", r.FilePath)
- }
- yamlArr := grapher.ImportMultiDocYAML(file)
- objects := grapher.ParseObjs(yamlArr, "default")
- parsed := grapher.ParsedObjs{
- Objects: objects,
- }
- parsed.GetControlRel()
- for i, o := range parsed.Objects {
- e := r.Expected[i]
- if len(e.Relations.ControlRels) != len(o.Relations.ControlRels) {
- t.Errorf("Number of ControlRel differs for %s of type %s. Expected %d. Got %d",
- e.Name, e.Kind, len(e.Relations.ControlRels), len(o.Relations.ControlRels))
- }
- for j, crel := range o.Relations.ControlRels {
- expCrel := e.Relations.ControlRels[j]
- if expCrel.Relation.Source != crel.Relation.Source {
- t.Errorf("Source in ControlRel differs for %s of type %s. Expected %d. Got %d",
- o.Name, o.Kind, expCrel.Relation.Source, crel.Relation.Source)
- }
- if expCrel.Relation.Target != crel.Relation.Target {
- t.Errorf("Target in ControlRel differs for %s of type %s. Expected %d. Got %d",
- o.Name, o.Kind, expCrel.Relation.Target, crel.Relation.Target)
- }
- if expCrel.Replicas != crel.Replicas {
- t.Errorf("Number of replicas in ControlRel differs for %s of type %s. Expected %d. Got %d",
- o.Name, o.Kind, expCrel.Replicas, crel.Replicas)
- }
- }
- }
- }
- }
- func TestLabelRels(t *testing.T) {
- ts := []test{
- test{
- Expected: expControlRels1,
- FilePath: "./test_yaml/cassandra.yaml",
- },
- }
- for _, r := range ts {
- // Load in yaml from test files
- file, err := ioutil.ReadFile(r.FilePath)
- if err != nil {
- t.Errorf("Error reading file %s", r.FilePath)
- }
- yamlArr := grapher.ImportMultiDocYAML(file)
- objects := grapher.ParseObjs(yamlArr, "default")
- parsed := grapher.ParsedObjs{
- Objects: objects,
- }
- parsed.GetControlRel()
- parsed.GetLabelRel()
- for i, o := range parsed.Objects {
- e := r.Expected[i]
- if len(e.Relations.LabelRels) != len(o.Relations.LabelRels) {
- t.Errorf("Number of LabelRel differs for %s of type %s. Expected %d. Got %d",
- e.Name, e.Kind, len(e.Relations.LabelRels), len(o.Relations.LabelRels))
- }
- for j, rrel := range o.Relations.LabelRels {
- expRrel := e.Relations.LabelRels[j]
- if expRrel.Relation.Source != rrel.Relation.Source {
- t.Errorf("Source in ControlRel differs for %s of type %s. Expected %d. Got %d",
- o.Name, o.Kind, expRrel.Relation.Source, rrel.Relation.Source)
- }
- if expRrel.Relation.Target != rrel.Relation.Target {
- t.Errorf("Target in ControlRel differs for %s of type %s. Expected %d. Got %d",
- o.Name, o.Kind, expRrel.Relation.Target, rrel.Relation.Target)
- }
- }
- }
- }
- }
- func TestSpecRels(t *testing.T) {
- ts := []test{
- test{
- Expected: expControlRels1,
- FilePath: "./test_yaml/ingress.yaml",
- },
- }
- for _, r := range ts {
- // Load in yaml from test files
- file, err := ioutil.ReadFile(r.FilePath)
- if err != nil {
- t.Errorf("Error reading file %s", r.FilePath)
- }
- yamlArr := grapher.ImportMultiDocYAML(file)
- objects := grapher.ParseObjs(yamlArr, "default")
- parsed := grapher.ParsedObjs{
- Objects: objects,
- }
- parsed.GetControlRel()
- parsed.GetSpecRel()
- // for i, o := range parsed.Objects {
- // e := r.Expected[i]
- // if len(e.Relations.SpecRels) != len(o.Relations.SpecRels) {
- // t.Errorf("Number of SpecRel differs for %s of type %s. Expected %d. Got %d",
- // e.Name, e.Kind, len(e.Relations.SpecRels), len(o.Relations.SpecRels))
- // }
- // for j, rrel := range o.Relations.SpecRels {
- // expRrel := e.Relations.SpecRels[j]
- // if expRrel.Relation.Source != rrel.Relation.Source {
- // t.Errorf("Source in ControlRel differs for %s of type %s. Expected %d. Got %d",
- // o.Name, o.Kind, expRrel.Relation.Source, rrel.Relation.Source)
- // }
- // if expRrel.Relation.Target != rrel.Relation.Target {
- // t.Errorf("Target in ControlRel differs for %s of type %s. Expected %d. Got %d",
- // o.Name, o.Kind, expRrel.Relation.Target, rrel.Relation.Target)
- // }
- // }
- // }
- }
- }
|