def test_should_only_include_top_level_nodes_when_calculating_available_balance(self): purchase_order_item = PurchaseOrderItemFactory(purchase_order=(PurchaseOrderFactory()), quantity=500) root_one = NodeFactory(item=purchase_order_item, quantity=200, distribution_plan=DeliveryFactory(track=True)) self.assertEquals(purchase_order_item.available_balance(), 300) NodeFactory(item=purchase_order_item, parents=[(root_one, 120)], distribution_plan=DeliveryFactory(track=True)) self.assertEquals(purchase_order_item.available_balance(), 300)
def test_should_only_include_top_level_nodes_when_calculating_available_balance( self): purchase_order_item = PurchaseOrderItemFactory(quantity=500) root_one = NodeFactory(item=purchase_order_item, quantity=200, distribution_plan=DeliveryFactory(track=True)) self.assertEquals(purchase_order_item.available_balance(), 300) NodeFactory(item=purchase_order_item, parents=[(root_one, 120)], distribution_plan=DeliveryFactory(track=True)) self.assertEquals(purchase_order_item.available_balance(), 300)
def test_balance_should_decrease_when_tracked_nodes_exist(self): purchase_order_item = PurchaseOrderItemFactory(purchase_order=(PurchaseOrderFactory()), quantity=500) delivery = DeliveryFactory() node_one = NodeFactory(item=purchase_order_item, quantity=200, distribution_plan=delivery) self.assertEquals(purchase_order_item.available_balance(), 500) delivery.track = True delivery.save() self.assertEquals(purchase_order_item.available_balance(), 300) NodeFactory(item=purchase_order_item, quantity=120, distribution_plan=delivery) self.assertEquals(purchase_order_item.available_balance(), 180)
def test_balance_should_decrease_when_nodes_exist(self): purchase_order = PurchaseOrderFactory() purchase_order_item = PurchaseOrderItemFactory( purchase_order=purchase_order, quantity=500) NodeFactory(item=purchase_order_item, targeted_quantity=200) NodeFactory(item=purchase_order_item, targeted_quantity=120) self.assertEquals(purchase_order_item.available_balance(), 180)
def test_should_decrease_balance_when_saving_tracked_or_not_tracked_nodes(self): purchase_order_item = PurchaseOrderItemFactory(quantity=500) delivery = DeliveryFactory() DeliveryNodeFactory(item=purchase_order_item, quantity=200, distribution_plan=delivery) self.assertEquals(purchase_order_item.available_balance(), 300) self.assertEquals(purchase_order_item.quantity_shipped(), 200) delivery.track = True delivery.save() self.assertEquals(purchase_order_item.available_balance(), 300) self.assertEquals(purchase_order_item.quantity_shipped(), 200) tracked_delivery = DeliveryFactory(track=True) DeliveryNodeFactory(item=purchase_order_item, quantity=120, distribution_plan=tracked_delivery) self.assertEquals(purchase_order_item.available_balance(), 180) self.assertEquals(purchase_order_item.quantity_shipped(), 320)
def test_balance_should_decrease_when_tracked_nodes_exist(self): purchase_order_item = PurchaseOrderItemFactory(quantity=500) delivery = DeliveryFactory() NodeFactory(item=purchase_order_item, quantity=200, distribution_plan=delivery) self.assertEquals(purchase_order_item.available_balance(), 500) delivery.track = True delivery.save() self.assertEquals(purchase_order_item.available_balance(), 300) NodeFactory(item=purchase_order_item, quantity=120, distribution_plan=delivery) self.assertEquals(purchase_order_item.available_balance(), 180)
def test_should_decrease_balance_when_saving_tracked_or_not_tracked_nodes( self): purchase_order_item = PurchaseOrderItemFactory(quantity=500) delivery = DeliveryFactory() DeliveryNodeFactory(item=purchase_order_item, quantity=200, distribution_plan=delivery) self.assertEquals(purchase_order_item.available_balance(), 300) self.assertEquals(purchase_order_item.quantity_shipped(), 200) delivery.track = True delivery.save() self.assertEquals(purchase_order_item.available_balance(), 300) self.assertEquals(purchase_order_item.quantity_shipped(), 200) tracked_delivery = DeliveryFactory(track=True) DeliveryNodeFactory(item=purchase_order_item, quantity=120, distribution_plan=tracked_delivery) self.assertEquals(purchase_order_item.available_balance(), 180) self.assertEquals(purchase_order_item.quantity_shipped(), 320)
def test_should_show_total_quantity_as_balance_when_no_nodes_exist(self): purchase_order = PurchaseOrderFactory() purchase_order_item = PurchaseOrderItemFactory( purchase_order=purchase_order, quantity=500) self.assertEquals(purchase_order_item.available_balance(), 500)