def setUp(self):
		self.db = Database()
class BasicTestCase(unittest.TestCase):
	
	def setUp(self):
		self.db = Database()
		
	def test_case1(self):
		self.db.set("ex", 10)
		self.assertEqual(self.db.get("ex"), 10)
		self.db.unset("ex")
		self.assertEqual(self.db.get("ex"), "NULL")
		
	def test_case2(self):
		self.db.set("a", 10)
		self.db.set("b", 10)
		self.assertEqual(self.db.numequalto(10), 2)
		self.assertEqual(self.db.numequalto(20), 0)
		self.db.set("b", 30)
		self.assertEqual(self.db.numequalto(10), 1)
		
	def test_case3(self):
		self.db.begin()
		self.db.set("a", 10)
		self.assertEqual(self.db.get("a"), 10)
		self.db.begin()
		self.db.set("a", 20)
		self.db.rollback()
		self.assertEqual(self.db.get("a"), 10)
		self.db.rollback()
		self.assertEqual(self.db.get("a"), "NULL")
		
	def test_case4(self):
		self.db.begin()
		self.db.set("a", 30)
		self.db.begin()
		self.db.set("a", 40)
		self.db.commit()
		self.assertEqual(self.db.get("a"), 40)
		self.assertEqual(self.db.rollback(), "NO TRANSACTION")
		
	def test_case5(self):
		self.db.set("a", 50)
		self.db.begin()
		self.assertEqual(self.db.get("a"), 50)
		self.db.set("a", 60)
		self.db.begin()
		self.db.unset("a")
		self.assertEqual(self.db.get("a"), "NULL")
		self.db.rollback()
		self.assertEqual(self.db.get("a"), 60)
		self.db.commit()
		self.assertEqual(self.db.get("a"), 60)
		
	def test_case6(self):
		self.db.set("a", 10)
		self.db.begin()
		self.assertEqual(self.db.numequalto(10), 1)
		self.db.begin()
		self.db.unset("a")
		self.assertEqual(self.db.numequalto(10), 0)
		self.db.rollback()
		self.assertEqual(self.db.numequalto(10), 1)
		self.db.commit()