def test_marks_behavior(self):

        fti = queryUtility(IDexterityFTI, 
                           name='upfront.assessmentitem.content.assessmentitem')
        factory = fti.factory
        new_assessmentitem = createObject(factory)
        self.failUnless(IAssessmentItem.providedBy(new_assessmentitem))

        fti = queryUtility(IDexterityFTI, 
                           name='upfront.assessmentitem.content.answer')
        factory = fti.factory
        new_answer = createObject(factory)
        self.failUnless(IAnswer.providedBy(new_answer))
 
        marks_behavior = getUtility(IBehavior, 
                        name = 'upfront.assessmentitem.behaviors.IMarks')

        # We expect this behavior to be a form field provider. Let's verify that
        self.failUnless(
            IFormFieldProvider.providedBy(marks_behavior.interface)
            )

        # assert that you cannot add this behavior to a non-dexterity 
        # content type
        doc = Document('doc')
        marks_adapter = IMarks(doc, None)
        self.assertEquals(False, marks_adapter is not None)

        # assert that new_assessmentitem object implements the behavior
        marks_adapter2 = IMarks(new_assessmentitem, None)
        self.assertEquals(True, marks_adapter2 is not None)
        
        # assert that new_answer object does not implements the behavior
        marks_adapter3 = IMarks(new_answer, None)
        self.assertEquals(False, marks_adapter3 is not None)
 def test_answer_factory(self):
     fti = queryUtility(IDexterityFTI, 
                        name='upfront.assessmentitem.content.answer')
     factory = fti.factory
     new_object = createObject(factory)
     self.failUnless(IAnswer.providedBy(new_object))