public void TestRemoveClass_Global() { ////Foo.java //class Foo { // private int bar; // public Foo() { bar = 42; } // public int GetBar() { return bar; } //} string fooXml = @"<class>class <name>Foo</name> <block>{ <decl_stmt><decl><type><specifier>private</specifier> <name>int</name></type> <name>bar</name></decl>;</decl_stmt> <constructor><specifier>public</specifier> <name>Foo</name><parameter_list>()</parameter_list> <block>{ <expr_stmt><expr><name>bar</name> <op:operator>=</op:operator> <lit:literal type=""number"">42</lit:literal></expr>;</expr_stmt> }</block></constructor> <function><type><specifier>public</specifier> <name>int</name></type> <name>GetBar</name><parameter_list>()</parameter_list> <block>{ <return>return <expr><name>bar</name></expr>;</return> }</block></function> }</block></class>"; var fooFileUnit = FileUnitSetup.GetFileUnitForXmlSnippet(fooXml, "Foo.java"); var beforeScope = CodeParser.ParseFileUnit(fooFileUnit); ////Baz.java //class Baz { // public static int DoWork() { return 0; } //} string bazXml = @"<class>class <name>Baz</name> <block>{ <function><type><specifier>public</specifier> <specifier>static</specifier> <name>int</name></type> <name>DoWork</name><parameter_list>()</parameter_list> <block>{ <return>return <expr><lit:literal type=""number"">0</lit:literal></expr>;</return> }</block></function> }</block></class>"; var bazFileUnit = FileUnitSetup.GetFileUnitForXmlSnippet(bazXml, "Baz.java"); var afterScope = beforeScope.Merge(CodeParser.ParseFileUnit(bazFileUnit)); Assert.AreEqual(0, afterScope.ChildStatements.OfType <NamespaceDefinition>().Count()); Assert.AreEqual(2, afterScope.ChildStatements.OfType <TypeDefinition>().Count()); afterScope.RemoveFile("Baz.java"); DataAssert.StatementsAreEqual(beforeScope, afterScope); }
public void TestRemoveClass_Global() { string fooXml = @"class Foo { private int bar; public Foo() { bar = 42; } public int GetBar() { return bar; } }"; LibSrcMLRunner run = new LibSrcMLRunner(); string srcML = run.GenerateSrcMLFromString(fooXml, "Foo.java", Language.Java, new Collection <UInt32>() { }, false); var fooFileUnit = FileUnitSetup.GetFileUnitForXmlSnippet(srcML, "Foo.java"); var beforeScope = CodeParser.ParseFileUnit(fooFileUnit); string bazXml = @"class Baz { public static int DoWork() { return 0; } }"; LibSrcMLRunner runA = new LibSrcMLRunner(); string srcMLA = runA.GenerateSrcMLFromString(bazXml, "Baz.java", Language.Java, new Collection <UInt32>() { }, false); var bazFileUnit = FileUnitSetup.GetFileUnitForXmlSnippet(srcMLA, "Baz.java"); var afterScope = beforeScope.Merge(CodeParser.ParseFileUnit(bazFileUnit)); Assert.AreEqual(0, afterScope.ChildStatements.OfType <NamespaceDefinition>().Count()); Assert.AreEqual(2, afterScope.ChildStatements.OfType <TypeDefinition>().Count()); afterScope.RemoveFile("Baz.java"); DataAssert.StatementsAreEqual(beforeScope, afterScope); }