This is bit of a monster
[Test]
def save_with_snippets():
sc = Scene()
sc.name = "has_narratives"
sc.default = "narrative_1"
sc.desc = "see if narratives export correctly"
#
# add a narrative with a pair of snippets
#
n = sc.Add_narrative("narrative_1", "first narrative")
n.Add(Snippet("Oh no!"))
n.Add(Snippet("I appear to be caught in a test harness!", true))
#
# do it again
#
n = sc.Add_narrative("narrative_2", "second narrative")
n.Add(Snippet("I have to get out of here", true))
n.Add(Snippet("I don't want to be here if the test fails"))
#
# this is what we expect the output to look like
#
target = detab("""
<scene name="has_narratives" default="narrative_1" desc="see if narratives export correctly">
<narrative name="narrative_1" desc="first narrative">
<snippet>Oh no!</snippet>
<snippet cut="true">I appear to be caught in a test harness!</snippet>
</narrative>
<narrative name="narrative_2" desc="second narrative">
<snippet cut="true">I have to get out of here</snippet>
<snippet>I don't want to be here if the test fails</snippet>
</narrative>
</scene>
""")
#
# save using stringwriter
#
using sw = StringWriter():
sc.save(sw)
#
# stringifying the writer gets the underlying string
#
result = "${sw}"
Assert.AreEqual(target, result)
That passes.
Still, the monstrosity of the test case is undeniable. I really need to test things like this from the narrative or snippet level. Of course, then I wouldn't be able to test that the it all loaded correct;y from the Scene level. I'm missing something here.
Never mind, in the absence of an epiphany, let's carry on as we are...
No comments:
Post a Comment