class UiElementTestCase(unittest.TestCase,CssComparator):
    """
    Testing UiElement's behaviour
    """
    def setUp(self):
        unittest.TestCase.setUp(self)
        self.ui_element = UiElement("target", "css_class", "elem_id", "elem_name", "callback_java_script", "callback_function")
    
    def testParameters(self):
        """
        Should store all parameters
        """
        #ui_element = UiElement("target", "css_class", "elem_id", "java_script")
        self.assertEqual(self.ui_element.target, 'target') 
        self.assertEqual(self.ui_element.elem_id, 'elem_id')
        self.assertEqual(self.ui_element.callback_java_script, 'callback_java_script')
        self.assertEqual(self.ui_element.callback_function, "callback_function")
        self.assertTrue(self.cssClassComparator(self.ui_element.css_class,"css_class"))
        
    def testRendering(self):
        """
        Should not render anything
        """
        self.assertRaises(Exception, create_elem_to_string_error)
        
    def testCssClass(self):
        """
        Should have ui_element css class
        """
        self.assertTrue(self.cssClassComparator(self.ui_element.css_class, "ui_element"))

    def testNoTargetExcetpions(self):
        """
        Should raise error if target is not specified
        """
        self.assertRaises(Exception, create_elem_no_callback_error)
    
    def testPrepareBody(self):
        """
        Should render proper html attributes
        """
        self.assertEqual(self.ui_element.prepare_body(),HTML_BODY)
    
    def testNoCallbackExcetpions(self):
        """
        Should raise error if both callback functions are not specified
        """
        self.assertRaises(Exception, create_elem_no_callback_error)
 def setUp(self):
     unittest.TestCase.setUp(self)
     self.ui_element = UiElement("target", "css_class", "elem_id", "elem_name", "callback_java_script", "callback_function")
def create_elem_to_string_error():
    ui_elem = UiElement("target", "css_class", "elem_id", "elem_name", "callback_java_script", "callback_function")
    ui_elem.__str__()