def then_a_new_loan_request_with_the_account_number_and_desired_value_is_created( step, account_number, desired_value): #Processes are nodes that use the company as the source node, and the client as destination world.the_company = Machine() world.a_client = Person() #now the business process starts to be assembled world.an_individual_credit_operation = Process(world.the_company, world.a_client) world.loan_request_creation = Transformation( world.credit_analyst.decorated, world.credit_analyst.decorated) world.loan_request_creation.set_action( world.credit_analyst.create_loan_request) world.loan_request_creation.action | should | equal_to( world.credit_analyst.create_loan_request) #associates the transformation to the process world.an_individual_credit_operation.insert_movement( 'loan request creation', world.loan_request_creation) world.an_individual_credit_operation.movements | should | contain( 'loan request creation') #finally it runs the transformation... world.an_individual_credit_operation.movements[ 'loan request creation'].perform(world.account, desired_value) #checks if the loan request is stored in the Node's input_area world.credit_analyst.decorated.input_area | should | contain( account_number)
def setUp(self): self.a_client = Node() self.the_company = Node() self.a_process = Process(self.the_company, self.a_client) self.a_processing_unit = Node() self.a_movement = Movement(self.a_processing_unit, self.a_processing_unit)
def then_a_new_loan_request_with_the_account_number_and_desired_value_is_created( step, account_number, desired_value): #Processes are nodes that use the company as the source node, and the client as destination world.the_company = Machine() world.a_client = Person() #now the business process starts to be assembled world.an_individual_credit_operation = Process( 'Individual Customer Credit Operation') world.an_individual_credit_operation.set_source(world.the_company) world.an_individual_credit_operation.set_destination(world.a_client) #configures the process using a template state machine template = LoanProcess() configurator = StateMachineConfigurator(template) configurator.configure(world.an_individual_credit_operation) #configures the loan request creation the_movement = world.an_individual_credit_operation.configure_activity_logger( world.credit_analyst.decorated, world.credit_analyst.decorated, world.an_individual_credit_operation.create_loan_request, CreditAnalystDecorator.create_loan_request) world.an_individual_credit_operation.movements | should | contain( the_movement.activity.__name__) #runs the loan request creation the_movement.context = world.an_individual_credit_operation.run_activity( the_movement, world.credit_analyst, world.account, desired_value) world.an_individual_credit_operation.current_state() | should | equal_to( 'request_created')
def and_there_is_a_refused_loan_request_of_value_value_for_account_account_number(step, desired_value, account_number): #preparing the context #puts the process in the refusal path world.an_individual_credit_operation = Process('Individual Customer Credit Operation') template = LoanProcess() configurator = StateMachineConfigurator(template) configurator.configure(world.an_individual_credit_operation) world.an_individual_credit_operation.create_loan_request() world.an_individual_credit_operation.analyst_select_request() #directly creating a loan request world.credit_analyst.create_loan_request(world.account, int(desired_value)) #forces the loan request approval and its transfer to the output_area world.credit_analyst.decorated.input_area[world.account.number].approved = False world.credit_analyst.decorated.transfer(world.account.number, 'input', 'output') world.credit_analyst.decorated.output_area |should| contain(world.account.number)
def setUp(self): self.process = Process() template = LoanProcess() configurator = StateMachineConfigurator(template) configurator.configure(self.process)
def it_inserts_a_subprocess(self): a_subprocess = Process() self.a_process.insert_movement('A subprocess', a_subprocess)
def setUp(self): self.a_client = Node() self.the_company = Node() self.a_process = Process() self.a_process.set_source(self.the_company) self.a_process.set_destination(self.a_client)