github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/syft/pkg/cataloger/haskell/parse_stack_yaml_test.go (about)

     1  package haskell
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/anchore/syft/syft/artifact"
     7  	"github.com/anchore/syft/syft/file"
     8  	"github.com/anchore/syft/syft/pkg"
     9  	"github.com/lineaje-labs/syft/syft/pkg/cataloger/internal/pkgtest"
    10  )
    11  
    12  func TestParseStackYaml(t *testing.T) {
    13  	fixture := "test-fixtures/stack.yaml"
    14  	locationSet := file.NewLocationSet(file.NewLocation(fixture))
    15  
    16  	expectedPkgs := []pkg.Package{
    17  		{
    18  			Name:      "ShellCheck",
    19  			Version:   "0.8.0",
    20  			PURL:      "pkg:hackage/ShellCheck@0.8.0",
    21  			Locations: locationSet,
    22  			Language:  pkg.Haskell,
    23  			Type:      pkg.HackagePkg,
    24  			Metadata: pkg.HackageStackYamlEntry{
    25  				PkgHash: "353c9322847b661e4c6f7c83c2acf8e5c08b682fbe516c7d46c29605937543df",
    26  			},
    27  		},
    28  		{
    29  			Name:      "colourista",
    30  			Version:   "0.1.0.1",
    31  			PURL:      "pkg:hackage/colourista@0.1.0.1",
    32  			Locations: locationSet,
    33  			Language:  pkg.Haskell,
    34  			Type:      pkg.HackagePkg,
    35  			Metadata: pkg.HackageStackYamlEntry{
    36  				PkgHash: "98353ee0e2f5d97d2148513f084c1cd37dfda03e48aa9dd7a017c9d9c0ba710e",
    37  			},
    38  		},
    39  		{
    40  			Name:      "language-docker",
    41  			Version:   "11.0.0",
    42  			PURL:      "pkg:hackage/language-docker@11.0.0",
    43  			Locations: locationSet,
    44  			Language:  pkg.Haskell,
    45  			Type:      pkg.HackagePkg,
    46  			Metadata: pkg.HackageStackYamlEntry{
    47  				PkgHash: "3406ff0c1d592490f53ead8cf2cd22bdf3d79fd125ccaf3add683f6d71c24d55",
    48  			},
    49  		},
    50  		{
    51  			Name:      "spdx",
    52  			Version:   "1.0.0.2",
    53  			PURL:      "pkg:hackage/spdx@1.0.0.2",
    54  			Locations: locationSet,
    55  			Language:  pkg.Haskell,
    56  			Type:      pkg.HackagePkg,
    57  			Metadata: pkg.HackageStackYamlEntry{
    58  				PkgHash: "7dfac9b454ff2da0abb7560f0ffbe00ae442dd5cb76e8be469f77e6988a70fed",
    59  			},
    60  		},
    61  		{
    62  			Name:      "hspec",
    63  			Version:   "2.9.4",
    64  			PURL:      "pkg:hackage/hspec@2.9.4",
    65  			Locations: locationSet,
    66  			Language:  pkg.Haskell,
    67  			Type:      pkg.HackagePkg,
    68  			Metadata: pkg.HackageStackYamlEntry{
    69  				PkgHash: "658a6a74d5a70c040edd6df2a12228c6d9e63082adaad1ed4d0438ad082a0ef3",
    70  			},
    71  		},
    72  		{
    73  			Name:      "hspec-core",
    74  			Version:   "2.9.4",
    75  			PURL:      "pkg:hackage/hspec-core@2.9.4",
    76  			Locations: locationSet,
    77  			Language:  pkg.Haskell,
    78  			Type:      pkg.HackagePkg,
    79  			Metadata: pkg.HackageStackYamlEntry{
    80  				PkgHash: "a126e9087409fef8dcafcd2f8656456527ac7bb163ed4d9cb3a57589042a5fe8",
    81  			},
    82  		},
    83  		{
    84  			Name:      "hspec-discover",
    85  			Version:   "2.9.4",
    86  			PURL:      "pkg:hackage/hspec-discover@2.9.4",
    87  			Locations: locationSet,
    88  			Language:  pkg.Haskell,
    89  			Type:      pkg.HackagePkg,
    90  			Metadata: pkg.HackageStackYamlEntry{
    91  				PkgHash: "fbcf49ecfc3d4da53e797fd0275264cba776ffa324ee223e2a3f4ec2d2c9c4a6",
    92  			},
    93  		},
    94  		{
    95  			Name:      "stm",
    96  			Version:   "2.5.0.2",
    97  			PURL:      "pkg:hackage/stm@2.5.0.2",
    98  			Locations: locationSet,
    99  			Language:  pkg.Haskell,
   100  			Type:      pkg.HackagePkg,
   101  			Metadata: pkg.HackageStackYamlEntry{
   102  				PkgHash: "e4dc6473faaa75fbd7eccab4e3ee1d651d75bb0e49946ef0b8b751ccde771a55",
   103  			},
   104  		},
   105  	}
   106  
   107  	// TODO: relationships are not under test yet
   108  	var expectedRelationships []artifact.Relationship
   109  
   110  	pkgtest.TestFileParser(t, fixture, parseStackYaml, expectedPkgs, expectedRelationships)
   111  
   112  }