Skip to content

Commit 0809c2d

Browse files
Add model element tests to increase core coverage (#27)
1 parent fad5328 commit 0809c2d

1 file changed

Lines changed: 145 additions & 0 deletions

File tree

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
// -------------------------------------------------------------------------------------------------
2+
// <copyright file="OperationAndFactoryTestFixture.cs" company="Starion Group S.A.">
3+
//
4+
// Copyright 2017-2025 Starion Group S.A.
5+
//
6+
// Licensed under the Apache License, Version 2.0 (the "License");
7+
// you may not use this file except in compliance with the License.
8+
// You may obtain a copy of the License at
9+
//
10+
// http://www.apache.org/licenses/LICENSE-2.0
11+
//
12+
// Unless required by applicable law or agreed to in writing, software
13+
// distributed under the License is distributed on an "AS IS" BASIS,
14+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
// See the License for the specific language governing permissions and
16+
// limitations under the License.
17+
//
18+
// </copyright>
19+
// ------------------------------------------------------------------------------------------------
20+
21+
namespace ECoreNetto.Tests.ModelElement
22+
{
23+
using System;
24+
using System.Xml;
25+
26+
using ECoreNetto.Resource;
27+
28+
using NUnit.Framework;
29+
30+
[TestFixture]
31+
public class OperationAndFactoryTestFixture
32+
{
33+
[Test]
34+
public void Verify_that_diagnostic_properties_are_set_by_constructor()
35+
{
36+
var diagnostic = new Diagnostic(8, 12, "test-location", "test message");
37+
38+
Assert.Multiple(() =>
39+
{
40+
Assert.That(diagnostic.Column, Is.EqualTo(8));
41+
Assert.That(diagnostic.Line, Is.EqualTo(12));
42+
Assert.That(diagnostic.Location, Is.EqualTo("test-location"));
43+
Assert.That(diagnostic.Message, Is.EqualTo("test message"));
44+
});
45+
}
46+
47+
[Test]
48+
public void Verify_that_efactory_can_be_constructed()
49+
{
50+
var resource = new Resource();
51+
52+
var eFactory = new EFactory(resource);
53+
54+
Assert.Multiple(() =>
55+
{
56+
Assert.That(eFactory.EResource, Is.EqualTo(resource));
57+
Assert.That(eFactory.EPackage, Is.Null);
58+
});
59+
}
60+
61+
[Test]
62+
public void Verify_that_eoperation_DeserializeChildNode_throws_for_null_reader()
63+
{
64+
var resource = new Resource();
65+
var operation = new TestableEOperation(resource);
66+
67+
Assert.That(() => operation.ExposeDeserializeChildNode(null), Throws.ArgumentNullException);
68+
}
69+
70+
[Test]
71+
public void Verify_that_eoperation_DeserializeChildNode_adds_parameter()
72+
{
73+
var resource = new Resource();
74+
var package = new EPackage(resource)
75+
{
76+
Name = "Pkg"
77+
};
78+
79+
var eClass = new EClass(resource)
80+
{
81+
Name = "SampleClass"
82+
};
83+
84+
package.EClassifiers.Add(eClass);
85+
86+
var operation = new TestableEOperation(resource)
87+
{
88+
Name = "DoWork"
89+
};
90+
91+
eClass.EOperations.Add(operation);
92+
93+
var xmlDocument = new XmlDocument();
94+
xmlDocument.LoadXml("<eParameters name=\"parameterOne\" />");
95+
96+
operation.ExposeDeserializeChildNode(xmlDocument.DocumentElement);
97+
98+
Assert.Multiple(() =>
99+
{
100+
Assert.That(operation.EParameters.Count, Is.EqualTo(1));
101+
Assert.That(operation.EParameters[0].Name, Is.EqualTo("parameterOne"));
102+
Assert.That(operation.EParameters[0].EOperation, Is.SameAs(operation));
103+
});
104+
}
105+
106+
[Test]
107+
public void Verify_that_eoperation_identifier_contains_containing_class_identifier_and_name()
108+
{
109+
var resource = new Resource();
110+
var package = new EPackage(resource)
111+
{
112+
Name = "Pkg"
113+
};
114+
115+
var eClass = new EClass(resource)
116+
{
117+
Name = "SampleClass"
118+
};
119+
120+
package.EClassifiers.Add(eClass);
121+
122+
var operation = new TestableEOperation(resource)
123+
{
124+
Name = "DoWork"
125+
};
126+
127+
eClass.EOperations.Add(operation);
128+
129+
Assert.That(operation.Identifier, Is.EqualTo($"EOperation::{eClass.Identifier}/DoWork"));
130+
}
131+
132+
private class TestableEOperation : EOperation
133+
{
134+
public TestableEOperation(Resource resource)
135+
: base(resource)
136+
{
137+
}
138+
139+
public void ExposeDeserializeChildNode(XmlNode node)
140+
{
141+
this.DeserializeChildNode(node);
142+
}
143+
}
144+
}
145+
}

0 commit comments

Comments
 (0)