github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/gosbom/pkg/cataloger/dotnet/parse_dotnet_deps_test.go (about) 1 package dotnet 2 3 import ( 4 "testing" 5 6 "github.com/nextlinux/gosbom/gosbom/artifact" 7 "github.com/nextlinux/gosbom/gosbom/file" 8 "github.com/nextlinux/gosbom/gosbom/pkg" 9 "github.com/nextlinux/gosbom/gosbom/pkg/cataloger/internal/pkgtest" 10 ) 11 12 func TestParseDotnetDeps(t *testing.T) { 13 fixture := "test-fixtures/TestLibrary.deps.json" 14 fixtureLocationSet := file.NewLocationSet(file.NewLocation(fixture)) 15 expected := []pkg.Package{ 16 { 17 Name: "AWSSDK.Core", 18 Version: "3.7.10.6", 19 PURL: "pkg:nuget/AWSSDK.Core@3.7.10.6", 20 Locations: fixtureLocationSet, 21 Language: pkg.Dotnet, 22 Type: pkg.DotnetPkg, 23 MetadataType: pkg.DotnetDepsMetadataType, 24 Metadata: pkg.DotnetDepsMetadata{ 25 Name: "AWSSDK.Core", 26 Version: "3.7.10.6", 27 Sha512: "sha512-kHBB+QmosVaG6DpngXQ8OlLVVNMzltNITfsRr68Z90qO7dSqJ2EHNd8dtBU1u3AQQLqqFHOY0lfmbpexeH6Pew==", 28 Path: "awssdk.core/3.7.10.6", 29 HashPath: "awssdk.core.3.7.10.6.nupkg.sha512", 30 }, 31 }, 32 { 33 Name: "Microsoft.Extensions.DependencyInjection.Abstractions", 34 Version: "6.0.0", 35 PURL: "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@6.0.0", 36 Locations: fixtureLocationSet, 37 Language: pkg.Dotnet, 38 Type: pkg.DotnetPkg, 39 MetadataType: pkg.DotnetDepsMetadataType, 40 Metadata: pkg.DotnetDepsMetadata{ 41 Name: "Microsoft.Extensions.DependencyInjection.Abstractions", 42 Version: "6.0.0", 43 Sha512: "sha512-xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", 44 Path: "microsoft.extensions.dependencyinjection.abstractions/6.0.0", 45 HashPath: "microsoft.extensions.dependencyinjection.abstractions.6.0.0.nupkg.sha512", 46 }, 47 }, 48 { 49 Name: "Microsoft.Extensions.DependencyInjection", 50 Version: "6.0.0", 51 PURL: "pkg:nuget/Microsoft.Extensions.DependencyInjection@6.0.0", 52 Locations: fixtureLocationSet, 53 Language: pkg.Dotnet, 54 Type: pkg.DotnetPkg, 55 MetadataType: pkg.DotnetDepsMetadataType, 56 Metadata: pkg.DotnetDepsMetadata{ 57 Name: "Microsoft.Extensions.DependencyInjection", 58 Version: "6.0.0", 59 Sha512: "sha512-k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==", 60 Path: "microsoft.extensions.dependencyinjection/6.0.0", 61 HashPath: "microsoft.extensions.dependencyinjection.6.0.0.nupkg.sha512", 62 }, 63 }, 64 { 65 Name: "Microsoft.Extensions.Logging.Abstractions", 66 Version: "6.0.0", 67 PURL: "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@6.0.0", 68 Locations: fixtureLocationSet, 69 Language: pkg.Dotnet, 70 Type: pkg.DotnetPkg, 71 MetadataType: pkg.DotnetDepsMetadataType, 72 Metadata: pkg.DotnetDepsMetadata{ 73 Name: "Microsoft.Extensions.Logging.Abstractions", 74 Version: "6.0.0", 75 Sha512: "sha512-/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", 76 Path: "microsoft.extensions.logging.abstractions/6.0.0", 77 HashPath: "microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512", 78 }, 79 }, 80 { 81 Name: "Microsoft.Extensions.Logging", 82 Version: "6.0.0", 83 PURL: "pkg:nuget/Microsoft.Extensions.Logging@6.0.0", 84 Locations: fixtureLocationSet, 85 Language: pkg.Dotnet, 86 Type: pkg.DotnetPkg, 87 MetadataType: pkg.DotnetDepsMetadataType, 88 Metadata: pkg.DotnetDepsMetadata{ 89 Name: "Microsoft.Extensions.Logging", 90 Version: "6.0.0", 91 Sha512: "sha512-eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", 92 Path: "microsoft.extensions.logging/6.0.0", 93 HashPath: "microsoft.extensions.logging.6.0.0.nupkg.sha512", 94 }, 95 }, 96 97 { 98 Name: "Microsoft.Extensions.Options", 99 Version: "6.0.0", 100 PURL: "pkg:nuget/Microsoft.Extensions.Options@6.0.0", 101 Locations: fixtureLocationSet, 102 Language: pkg.Dotnet, 103 Type: pkg.DotnetPkg, 104 MetadataType: pkg.DotnetDepsMetadataType, 105 Metadata: pkg.DotnetDepsMetadata{ 106 Name: "Microsoft.Extensions.Options", 107 Version: "6.0.0", 108 Sha512: "sha512-dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", 109 Path: "microsoft.extensions.options/6.0.0", 110 HashPath: "microsoft.extensions.options.6.0.0.nupkg.sha512", 111 }, 112 }, 113 { 114 Name: "Microsoft.Extensions.Primitives", 115 Version: "6.0.0", 116 PURL: "pkg:nuget/Microsoft.Extensions.Primitives@6.0.0", 117 Locations: fixtureLocationSet, 118 Language: pkg.Dotnet, 119 Type: pkg.DotnetPkg, 120 MetadataType: pkg.DotnetDepsMetadataType, 121 Metadata: pkg.DotnetDepsMetadata{ 122 Name: "Microsoft.Extensions.Primitives", 123 Version: "6.0.0", 124 Sha512: "sha512-9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", 125 Path: "microsoft.extensions.primitives/6.0.0", 126 HashPath: "microsoft.extensions.primitives.6.0.0.nupkg.sha512", 127 }, 128 }, 129 { 130 Name: "Newtonsoft.Json", 131 Version: "13.0.1", 132 PURL: "pkg:nuget/Newtonsoft.Json@13.0.1", 133 Locations: fixtureLocationSet, 134 Language: pkg.Dotnet, 135 Type: pkg.DotnetPkg, 136 MetadataType: pkg.DotnetDepsMetadataType, 137 Metadata: pkg.DotnetDepsMetadata{ 138 Name: "Newtonsoft.Json", 139 Version: "13.0.1", 140 Sha512: "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", 141 Path: "newtonsoft.json/13.0.1", 142 HashPath: "newtonsoft.json.13.0.1.nupkg.sha512", 143 }, 144 }, 145 { 146 Name: "Serilog.Sinks.Console", 147 Version: "4.0.1", 148 PURL: "pkg:nuget/Serilog.Sinks.Console@4.0.1", 149 Locations: fixtureLocationSet, 150 Language: pkg.Dotnet, 151 Type: pkg.DotnetPkg, 152 MetadataType: pkg.DotnetDepsMetadataType, 153 Metadata: pkg.DotnetDepsMetadata{ 154 Name: "Serilog.Sinks.Console", 155 Version: "4.0.1", 156 Sha512: "sha512-apLOvSJQLlIbKlbx+Y2UDHSP05kJsV7mou+fvJoRGs/iR+jC22r8cuFVMjjfVxz/AD4B2UCltFhE1naRLXwKNw==", 157 Path: "serilog.sinks.console/4.0.1", 158 HashPath: "serilog.sinks.console.4.0.1.nupkg.sha512", 159 }, 160 }, 161 { 162 Name: "Serilog", 163 Version: "2.10.0", 164 PURL: "pkg:nuget/Serilog@2.10.0", 165 Locations: fixtureLocationSet, 166 Language: pkg.Dotnet, 167 Type: pkg.DotnetPkg, 168 MetadataType: pkg.DotnetDepsMetadataType, 169 Metadata: pkg.DotnetDepsMetadata{ 170 Name: "Serilog", 171 Version: "2.10.0", 172 Sha512: "sha512-+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA==", 173 Path: "serilog/2.10.0", 174 HashPath: "serilog.2.10.0.nupkg.sha512", 175 }, 176 }, 177 { 178 Name: "System.Diagnostics.DiagnosticSource", 179 Version: "6.0.0", 180 PURL: "pkg:nuget/System.Diagnostics.DiagnosticSource@6.0.0", 181 Locations: fixtureLocationSet, 182 Language: pkg.Dotnet, 183 Type: pkg.DotnetPkg, 184 MetadataType: pkg.DotnetDepsMetadataType, 185 Metadata: pkg.DotnetDepsMetadata{ 186 Name: "System.Diagnostics.DiagnosticSource", 187 Version: "6.0.0", 188 Sha512: "sha512-frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", 189 Path: "system.diagnostics.diagnosticsource/6.0.0", 190 HashPath: "system.diagnostics.diagnosticsource.6.0.0.nupkg.sha512", 191 }, 192 }, 193 { 194 Name: "System.Runtime.CompilerServices.Unsafe", 195 Version: "6.0.0", 196 PURL: "pkg:nuget/System.Runtime.CompilerServices.Unsafe@6.0.0", 197 Locations: fixtureLocationSet, 198 Language: pkg.Dotnet, 199 Type: pkg.DotnetPkg, 200 MetadataType: pkg.DotnetDepsMetadataType, 201 Metadata: pkg.DotnetDepsMetadata{ 202 Name: "System.Runtime.CompilerServices.Unsafe", 203 Version: "6.0.0", 204 Sha512: "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", 205 Path: "system.runtime.compilerservices.unsafe/6.0.0", 206 HashPath: "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", 207 }, 208 }, 209 } 210 211 var expectedRelationships []artifact.Relationship 212 pkgtest.TestFileParser(t, fixture, parseDotnetDeps, expected, expectedRelationships) 213 }