def test_should_create_rule_model_in_db(self): expected_name = 'django_business_rules.tests.product_business_rule.ProductBusinessRule' self.assertFalse( BusinessRuleModel.objects.filter(name=expected_name).exists()) ProductBusinessRule.generate() self.assertTrue( BusinessRuleModel.objects.filter(name=expected_name).exists())
def test_should_create_rule_model_in_db_with_empty_dict_as_rule(self): expected_name = 'django_business_rules.tests.product_business_rule.ProductBusinessRule' expected_rules = '{}' self.assertFalse( BusinessRuleModel.objects.filter(name=expected_name).exists()) ProductBusinessRule.generate() self.assertEqual( BusinessRuleModel.objects.get(name=expected_name).rules, expected_rules)
def test_should_get_rules_from_db(self): # GIVEN expected_name = 'django_business_rules.tests.product_business_rule.ProductBusinessRule' expected_rules = {'key1': 'value1'} self.assertFalse( BusinessRuleModel.objects.filter(name=expected_name).exists()) ProductBusinessRule.generate() ProductBusinessRule.save_rules({'key1': 'value1'}) # WHEN actual_rules = ProductBusinessRule.get_rules() # THEN self.assertEqual(actual_rules, expected_rules)
def test_should_save_rules_in_db(self): # GIVEN expected_name = 'django_business_rules.tests.product_business_rule.ProductBusinessRule' expected_rules = '{"key1": "value1"}' self.assertFalse( BusinessRuleModel.objects.filter(name=expected_name).exists()) ProductBusinessRule.generate() # WHEN ProductBusinessRule.save_rules({'key1': 'value1'}) # THEN self.assertEqual( BusinessRuleModel.objects.get(name=expected_name).rules, expected_rules)
def test_should_update_rule_model_in_db(self): # GIVEN expected_name = 'django_business_rules.tests.product_business_rule.ProductBusinessRule' self.assertFalse( BusinessRuleModel.objects.filter(name=expected_name).exists()) ProductBusinessRule.generate() self.assertEqual( BusinessRuleModel.objects.get(name=expected_name).description, '') # WHEN ProductBusinessRuleToTestUpdate.generate() # THEN expected_description = 'updated ProductBusinessRule' self.assertEqual( BusinessRuleModel.objects.get(name=expected_name).description, expected_description)
def test_should_execute_run_all_with_correct_parameters( self, mock_for_run_all, mock_for_get_actions, mock_for_get_variables, mock_for_get_rules): # GIVEN mock_for_rules = Mock() mock_for_get_rules.return_value = mock_for_rules mock_for_variables = Mock() mock_for_get_variables.return_value = mock_for_variables mock_for_actions = Mock() mock_for_get_actions.return_value = mock_for_actions mock_for_product = Mock() # WHEN ProductBusinessRule.run_all(mock_for_product) # THEN mock_for_run_all.assert_called_once_with( rule_list=mock_for_rules, defined_variables=mock_for_variables, defined_actions=mock_for_actions, stop_on_first_trigger=True)
def test_should_save_rule_in_database(self, mock_for_find): # GIVEN mock_for_find.return_value = [ProductBusinessRule] self.assertEqual(0, BusinessRuleModel.objects.count()) out = io.StringIO() try: # WHEN call_command(self.COMMAND_NAME, verbosity=2, stdout=out) # THEN self.assertEqual( 1, BusinessRuleModel.objects.filter( name=ProductBusinessRule.get_name()).count()) except Exception: self._print_output(out) raise
def test_updated_rule_should_be_transfered_to_correct_object(self): # GIVEN rule = BusinessRuleModel.objects.create(name=ProductBusinessRule.name, description='test description', rule_data='test rule data', rules='["test rules"]') update_data = { 'rules': '{"key1": "value1"}', } # WHEN response = self.client.post( reverse('dbr:business-rule-form', kwargs={'pk': rule.pk}), data=update_data, ) # THEN self.assertEqual(response.status_code, 302, response.content) self.assertEqual(ProductBusinessRule.get_rules(), {"key1": "value1"})