83 lines
2.4 KiB
Python
83 lines
2.4 KiB
Python
from unittest import TestCase
|
|
from pypatterns.structural.adapter import Adapter
|
|
|
|
|
|
class AdapterTestCase(TestCase):
|
|
"""
|
|
Unit testing class for the Adapter class.
|
|
"""
|
|
def setUp(self):
|
|
"""
|
|
Initialize testing data.
|
|
"""
|
|
class Dog(object):
|
|
def __init__(self):
|
|
self.name = "Dog"
|
|
|
|
def bark(self):
|
|
return "woof!"
|
|
|
|
class Cat(object):
|
|
def __init__(self):
|
|
self.name = "Cat"
|
|
|
|
def meow(self):
|
|
return "meow!"
|
|
|
|
self.cat = Cat()
|
|
self.dog = Dog()
|
|
|
|
def test_init(self):
|
|
"""
|
|
Test the init method.
|
|
|
|
@raise AssertionError: If the test fails.
|
|
"""
|
|
cat_adapter = Adapter(self.cat, make_noise=self.cat.meow, foo=self.cat.name)
|
|
dog_adapter = Adapter(self.dog, make_noise=self.dog.bark, foo=self.dog.name)
|
|
|
|
self.assertIn('make_noise', cat_adapter.__dict__)
|
|
self.assertIn('make_noise', dog_adapter.__dict__)
|
|
|
|
self.assertNotIn('foo', cat_adapter.__dict__)
|
|
self.assertNotIn('foo', dog_adapter.__dict__)
|
|
|
|
self.assertEquals(cat_adapter.make_noise, self.cat.meow)
|
|
self.assertEquals(dog_adapter.make_noise, self.dog.bark)
|
|
|
|
def test_getattr(self):
|
|
"""
|
|
Test the __getattr__ method.
|
|
|
|
@raise AssertionError: If the test fails.
|
|
"""
|
|
cat_adapter = Adapter(self.cat, make_noise=self.cat.meow)
|
|
dog_adapter = Adapter(self.dog, make_noise=self.dog.bark)
|
|
|
|
self.assertEquals('Cat', cat_adapter.name)
|
|
self.assertEquals('Dog', dog_adapter.name)
|
|
|
|
def test_original_dict(self):
|
|
"""
|
|
Test the original_dict method.
|
|
|
|
@raise AssertionError: If the test fails.
|
|
"""
|
|
cat_adapter = Adapter(self.cat, make_noise=self.cat.meow)
|
|
dog_adapter = Adapter(self.dog, make_noise=self.dog.bark)
|
|
|
|
self.assertEquals(self.cat.__dict__, cat_adapter.original_dict())
|
|
self.assertEquals(self.dog.__dict__, dog_adapter.original_dict())
|
|
|
|
def test_adapted_method(self):
|
|
"""
|
|
Test and adapted method.
|
|
|
|
@raise AssertionError: If the test fails.
|
|
"""
|
|
cat_adapter = Adapter(self.cat, make_noise=self.cat.meow)
|
|
dog_adapter = Adapter(self.dog, make_noise=self.dog.bark)
|
|
|
|
self.assertEquals('meow!', cat_adapter.make_noise())
|
|
self.assertEquals('woof!', dog_adapter.make_noise())
|