def test_system_remove(self): # 5.2 # check sys manager really exist self.assertTrue( Bridge.is_system_manager( 'Ultimate_OmriOmri', 'ef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f' )) # add a normal user self.assertTrue(Bridge.register_user('normalUser', 'password')) # delete the normal user self.assertTrue( Bridge.delete_user(by='Ultimate_OmriOmri', who='normalUser')) self.assertEqual(Bridge.login('normalUser', 'password'), 'FAILED: Username is incorrect') # add owner of store Bridge.register_user('ownerUser', 'password') Bridge.open_shop('ownerUser', 'myShop') # delete owner and its shop self.assertTrue( Bridge.delete_user(by='Ultimate_OmriOmri', who='ownerUser')) self.assertEqual(Bridge.login('normalUser', 'password'), 'FAILED: Username is incorrect') shop = Bridge.search_shop('myShop') self.assertEqual(shop.status, "Permanently_closed")
def test_buy(self): # 1.7 # setup shop Bridge.register_user('ownerUser', 'password') Bridge.login('ownerUser', 'password') Bridge.open_shop('ownerUser', 'my_shop') Bridge.register_user('clientUser', 'password') Bridge.search_shop('my_shop') # add items to shop Bridge.add_item_to_shop(shop_name='my_shop', item_name='item_name1', item_category='item_category', keywords='keywords', price=10, quantity=10, username='******', kind='regular', url=None, item_rating=0, sum_of_ranking=0, num_of_reviews=0) Bridge.add_item_to_shop(shop_name='my_shop', item_name='item_name2', item_category='item_category', keywords='keywords', price=10, quantity=20, username='******', kind='regular', url=None, item_rating=0, sum_of_ranking=0, num_of_reviews=0) Bridge.add_item_to_shop(shop_name='my_shop', item_name='item_name3', item_category='item_category', keywords='keywords', price=10, quantity=30, username='******', kind='regular', url=None, item_rating=0, sum_of_ranking=0, num_of_reviews=0) Bridge.add_item_to_shop(shop_name='my_shop', item_name='item_name4', item_category='item_category', keywords='keywords', price=10, quantity=40, username='******', kind='regular', url=None, item_rating=0, sum_of_ranking=0, num_of_reviews=0) Bridge.add_item_to_shop(shop_name='my_shop', item_name='item_name5', item_category='item_category', keywords='keywords', price=10, quantity=50, username='******', kind='regular', url=None, item_rating=0, sum_of_ranking=0, num_of_reviews=0) # add items to cart username = '******' access_token = hashlib.md5(username.encode()).hexdigest() Consumer.loggedInUsers[access_token] = username Consumer.loggedInUsersShoppingCart[access_token] = [] Bridge.buy_item(access_token, 'clientUser', 'my_shop', 1, 10) Bridge.buy_item(access_token, 'clientUser', 'my_shop', 2, 10) Bridge.buy_item(access_token, 'clientUser', 'my_shop', 3, 10) Bridge.buy_item(access_token, 'clientUser', 'my_shop', 4, 10) Bridge.buy_item(access_token, 'clientUser', 'my_shop', 5, 10) # check total cost is calculated right self.assertEqual(Bridge.get_cart_cost(access_token), 500) # buy! self.assertTrue(Bridge.pay_cart(access_token)) # check quantity in store changed self.assertEqual(Bridge.quantity_in_store(1), 0) self.assertEqual(Bridge.quantity_in_store(2), 10) self.assertEqual(Bridge.quantity_in_store(3), 20) self.assertEqual(Bridge.quantity_in_store(4), 30) self.assertEqual(Bridge.quantity_in_store(5), 40) # alternative scenario - item quantity is not enough self.assertFalse( Bridge.buy_item(access_token, 'clientUser', 'my_shop', 1, 10)) # alternative scenario - added items, but another user already bought them username2 = 'clientUser2' access_token2 = hashlib.md5(username2.encode()).hexdigest() Consumer.loggedInUsers[access_token2] = username2 Consumer.loggedInUsersShoppingCart[access_token2] = [] Bridge.register_user('clientUser2', 'password') Bridge.buy_item(access_token, 'clientUser', 'my_shop', 2, 10) Bridge.buy_item(access_token2, 'clientUser2', 'my_shop', 2, 10) self.assertTrue(isinstance(Bridge.pay_cart(access_token2), list)) self.assertTrue(isinstance(Bridge.pay_cart(access_token), str))