def test_update_product_ok_response(
			self,
			mock_product_repo_get,
			mock_request_params
	):
		'''Test update_product OK response.
        '''
		# Arrange
		with self.app.app_context():
			mock_request_params.return_value = (
				self.fake.name(), self.fake.text(),
				self.fake.pydecimal(left_digits=2, right_digits=2, positive=True),
				self.fake.pydecimal(left_digits=2, right_digits=2, positive=True),
				self.fake.name(), self.fake.name(), self.fake.name(),
				20, 3, 1
			)
			mock_product_repo_get.return_value = self.mock_product
			product_controller = ProductController(self.request_context)

			# Act
			result = product_controller.update_product(1)

			# Assert
			assert result.status_code == 200
			assert result.get_json()['msg'] == 'OK'
	def test_update_product_when_product_doesnot_exist(
			self,
			mock_product_repo_get,
			mock_request_params
	):
		'''Test update_product when product does not exist.
        '''
		# Arrange
		with self.app.app_context():
			mock_request_params.return_value = (
				self.fake.name(), self.fake.text(),
				self.fake.pydecimal(left_digits=2, right_digits=2, positive=True),
				self.fake.pydecimal(left_digits=2, right_digits=2, positive=True),
				self.fake.name(), self.fake.name(), self.fake.name(),
				20, 3, 1
			)
			mock_product_repo_get.return_value = None
			product_controller = ProductController(self.request_context)

			# Act
			result = product_controller.update_product(1)

			# Assert
			assert result.status_code == 400
			assert result.get_json()['msg'] == 'Invalid or incorrect ' \
											   'product_id provided'