using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Person; namespace PersonTest { [TestClass] public class PersonTest { //[TestMethod] public void TestConstructor() { Person.Person person = new Person.Person("Anders", 'M'); Assert.AreEqual("Anders", person.Name); Assert.AreEqual('M', person.Gender); try { new Person.Person(null, 'M'); Assert.Fail(); } catch (ArgumentException ex) { Assert.AreEqual("name is null or empty", ex.Message); } try { new Person.Person("", 'M'); Assert.Fail(); } catch (ArgumentException ex) { Assert.AreEqual("name is null or empty", ex.Message); } try { new Person.Person("Anders", 'K'); Assert.Fail(); } catch (ArgumentException ex) { Assert.AreEqual("gender must be either M or F: K", ex.Message); } } [TestMethod] public void TestName() { Person.Person person = new Person.Person("Anders", 'M'); person.Name = "John"; Assert.AreEqual("John", person.Name); try { person.Name = ""; Assert.Fail(); } catch (ArgumentException ex) { Assert.AreEqual("name is null or empty", ex.Message); } try { person.Name = null; Assert.Fail(); } catch (ArgumentException ex) { Assert.AreEqual("name is null or empty", ex.Message); } } [ExpectedException(typeof(ArgumentException))] [TestMethod] public void TestConstructor2() { new Person.Person("", 'M'); } [TestMethod] public void TestGender() { Person.Person person = new Person.Person("Anders", 'M'); person.Gender = 'F'; Assert.AreEqual('F', person.Gender); try { person.Gender = 'A'; Assert.Fail(); } catch (ArgumentException ex) { Assert.AreEqual("gender must be either M or F: A", ex.Message); } } [TestMethod] public void TestToString() { Person.Person person = new Person.Person("Anders", 'M'); Assert.AreEqual("Person(Anders, M", person.ToString()); } } }