2222
2323from packageurl import PackageURL
2424
25+ from cyclonedx .model .bom import Bom
2526from cyclonedx .model .component import Component
2627
2728
@@ -30,6 +31,7 @@ class TestComponent(TestCase):
3031 @classmethod
3132 def setUpClass (cls ) -> None :
3233 cls ._component : Component = Component (name = 'setuptools' , version = '50.3.2' )
34+ cls ._component_2 : Component = Component (name = 'setuptools' , version = '50.3.2' )
3335 cls ._component_with_qualifiers : Component = Component (name = 'setuptools' , version = '50.3.2' ,
3436 qualifiers = 'extension=tar.gz' )
3537 cls ._component_generic_file : Component = Component (
@@ -116,3 +118,23 @@ def test_from_file_with_path_for_bom(self):
116118 )
117119 self .assertEqual (c .to_package_url (), purl )
118120 self .assertEqual (len (c .get_hashes ()), 1 )
121+
122+ def test_has_component_1 (self ):
123+ bom = Bom ()
124+ bom .add_component (component = TestComponent ._component )
125+ bom .add_component (component = TestComponent ._component_2 )
126+ self .assertEqual (len (bom .get_components ()), 1 )
127+ self .assertTrue (bom .has_component (component = TestComponent ._component_2 ))
128+ self .assertIsNot (TestComponent ._component , TestComponent ._component_2 )
129+
130+ def test_get_component_by_purl_1 (self ):
131+ bom = Bom ()
132+ bom .add_component (component = TestComponent ._component )
133+ bom .add_component (component = TestComponent ._component_2 )
134+ self .assertEqual (len (bom .get_components ()), 1 )
135+ self .assertTrue (bom .has_component (component = TestComponent ._component ))
136+ self .assertTrue (bom .has_component (component = TestComponent ._component_2 ))
137+ self .assertEqual (bom .get_component_by_purl (
138+ purl = TestComponent ._component .get_purl ()),
139+ TestComponent ._component_2
140+ )
0 commit comments