Files
PyPattyrn/tests/creational_tests/test_singleton.py
tylerlaberge 2811f40da8 added setup.py
created creational package
moved singleton into its own python file
2016-07-18 11:19:44 -04:00

52 lines
1.8 KiB
Python

from unittest import TestCase
from pypatterns.creational.singleton import Singleton
from tests.utils.dummy import dummy_class_factory
class SingletonTestCase(TestCase):
"""
Unit testing class for the singleton design pattern.
"""
def setUp(self):
"""
Initialize testing data.
"""
self.dummy_class_one = dummy_class_factory(meta_class=Singleton,
attributes={},
functions={})
self.dummy_class_two = dummy_class_factory(meta_class=Singleton,
attributes={},
functions={})
def test_single(self):
"""
Test instances from a single singleton class.
@raise AssertionError: If the test fails.
"""
dummy_one = self.dummy_class_one()
dummy_two = self.dummy_class_one()
self.assertEquals(id(dummy_one), id(dummy_two))
def test_multiple(self):
"""
Test instances from multiple singleton classes.
@raise AssertionError: If the test fails.
"""
dummy_class_one_instance_one = self.dummy_class_one()
dummy_class_one_instance_two = self.dummy_class_one()
dummy_class_two_instance_one = self.dummy_class_two()
dummy_class_two_instance_two = self.dummy_class_two()
self.assertEquals(id(dummy_class_one_instance_one), id(dummy_class_one_instance_two))
self.assertEquals(id(dummy_class_two_instance_one), id(dummy_class_two_instance_two))
self.assertNotEquals(id(dummy_class_one_instance_one), id(dummy_class_two_instance_one))
self.assertNotEquals(id(dummy_class_one_instance_two), id(dummy_class_two_instance_two))