1
from twisted.trial import unittest
3
from imaginary import objects, iimaginary
4
from imaginary.test import commandutils
6
from examplegame import quiche
9
class VendingTest(commandutils.CommandTestCaseMixin, unittest.TestCase):
10
def testTheyExist(self):
11
self._test("create the 'vending machine' named vendy",
12
["You create vendy."],
13
["Test Player creates vendy."])
16
def testPopulateVendingMachine(self):
17
self._test("create the 'vending machine' named vendy",
18
["You create vendy."],
19
["Test Player creates vendy."])
21
self._test("create a quiche named quiche",
22
["You create a quiche."],
23
["Test Player creates a quiche."])
25
self._test("open vendy",
27
["Test Player opens vendy."])
29
self._test("put quiche in vendy",
30
["You put the quiche in vendy."],
31
["Test Player puts a quiche in vendy."])
34
def testBuyingQuiche(self):
35
self._test("create the 'vending machine' named vendy",
36
["You create vendy."],
37
["Test Player creates vendy."])
39
self._test("drop vendy",
41
["Test Player drops vendy."])
43
self._test("create a quiche named quiche",
44
["You create a quiche."],
45
["Test Player creates a quiche."])
47
self._test("open vendy",
49
["Test Player opens vendy."])
51
self._test("put quiche in vendy",
52
["You put the quiche in vendy."],
53
["Test Player puts a quiche in vendy."])
56
self._test("create the quarter named quarter%s " % i,
57
["You create quarter%s." % i],
58
["Test Player creates quarter%s." % i])
61
self._test("put quarter%i in vendy" % i,
62
["You put quarter%s in vendy." % i],
63
["Test Player puts quarter%s in vendy." % i])
65
self._test("put quarter4 in vendy",
66
["You put quarter4 in vendy.",
67
"Vendy thumps loudly and spits out a quiche onto the ground."],
68
["Test Player puts quarter4 in vendy.",
69
"Vendy thumps loudly and spits out a quiche onto the ground."])
72
def testProgrammaticQuichePurchase(self):
73
location = objects.Thing(store=self.store, name=u"room")
74
icloc = objects.Container.createFor(location, capacity=500)
76
vm = quiche.createVendingMachine(store=self.store, name=u"Vendy", description=u"VEEEENDYYYYY")
79
icvm = iimaginary.IContainer(vm)
81
theQuiche = quiche.createQuiche(store=self.store, name=u"quiche")
86
quarter = quiche.createCoin(store=self.store, name=u"quarter%s" % (i,))
89
quarter = quiche.createCoin(store=self.store, name=u"quarter4")
92
self.failUnless(icloc.contains(theQuiche))