public void Dog_RequiredMemberTests() { Type type = typeof(Dog); Dog dog = (Dog)Activator.CreateInstance(type); FieldInfo fi = type.GetField("isSleeping", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(fi, "Dog class needs the isSleeping variable."); Assert.AreEqual(typeof(bool), fi.FieldType, "isSleeping should be type: bool"); PropertyInfo prop = type.GetProperty("IsSleeping"); PropertyValidator.ValidateReadOnly(prop, "IsSleeping", typeof(bool)); MethodInfo mi = type.GetMethod("MakeSound"); Assert.IsNotNull(mi, "Dog class needs the MakeSound method."); Assert.AreEqual(typeof(string), mi.ReturnType, "MakeSound() method needs to return type: string"); mi = type.GetMethod("Sleep"); Assert.IsNotNull(mi, "Dog class needs the Sleep() method."); Assert.AreEqual(typeof(void), mi.ReturnType, "Sleep() method needs to return type: void"); mi = type.GetMethod("WakeUp"); Assert.IsNotNull(mi, "Dog class needs the WakeUp() method."); Assert.AreEqual(typeof(void), mi.ReturnType, "WakeUp() method needs to return type: void"); }
public void ShoppingCart_RequiredMembers() { Type type = typeof(ShoppingCart); ShoppingCart cart = (ShoppingCart)Activator.CreateInstance(type); PropertyInfo prop = type.GetProperty("TotalNumberOfItems"); PropertyValidator.ValidateReadOnly(prop, "TotalNumberOfItems", typeof(int)); prop = type.GetProperty("TotalAmountOwed"); PropertyValidator.ValidateReadOnly(prop, "TotalAmountOwed", typeof(decimal)); MethodInfo mi = type.GetMethod("GetAveragePricePerItem"); Assert.IsNotNull(mi, "Shopping cart class needs the GetAveragePricePerItem method."); Assert.AreEqual(typeof(decimal), mi.ReturnType, "GetAveragePricePerItem() method needs to return type: double"); Assert.AreEqual(0, mi.GetParameters().Length, "GetAveragePricePerItem() should have no parameters"); mi = type.GetMethod("AddItems"); Assert.IsNotNull(mi, "Shopping cart class needs the AddItems method."); Assert.AreEqual(typeof(void), mi.ReturnType, "AddItems() method needs to return type: void"); Assert.AreEqual(2, mi.GetParameters().Length); mi = type.GetMethod("Empty"); Assert.IsNotNull(mi, "Shopping cart class needs the Empty method."); Assert.AreEqual(typeof(void), mi.ReturnType, "Empty() method needs to return type: void"); Assert.AreEqual(0, mi.GetParameters().Length); }
public void Employee_HasRequiredMembers() { Type type = typeof(Employee); PropertyInfo prop = type.GetProperty("EmployeeId"); PropertyValidator.ValidateReadPrivateWrite(prop, "EmployeeId", typeof(int)); prop = type.GetProperty("FirstName"); PropertyValidator.ValidateReadPrivateWrite(prop, "FirstName", typeof(string)); prop = type.GetProperty("LastName"); PropertyValidator.ValidateReadWrite(prop, "LastName", typeof(string)); prop = type.GetProperty("FullName"); PropertyValidator.ValidateReadOnly(prop, "FullName", typeof(string)); prop = type.GetProperty("Department"); PropertyValidator.ValidateReadWrite(prop, "Department", typeof(string)); prop = type.GetProperty("AnnualSalary"); PropertyValidator.ValidateReadPrivateWrite(prop, "AnnualSalary", typeof(double)); MethodInfo method = type.GetMethod("RaiseSalary"); MethodValidator.ValidatePublicMethod(method, "RaiseSalary", typeof(void)); }
public void Company_CheckRequiredMembers() { Type type = typeof(Company); Company company = (Company)Activator.CreateInstance(type, "ACME"); PropertyInfo prop = type.GetProperty("Name"); PropertyValidator.ValidateReadOnly(prop, "Name", typeof(string)); prop = type.GetProperty("NumberOfEmployees"); PropertyValidator.ValidateReadWrite(prop, "NumberOfEmployees", typeof(int)); prop = type.GetProperty("Revenue"); PropertyValidator.ValidateReadWrite(prop, "Revenue", typeof(decimal)); prop = type.GetProperty("Expenses"); PropertyValidator.ValidateReadWrite(prop, "Expenses", typeof(decimal)); MethodInfo mi = type.GetMethod("GetCompanySize"); Assert.IsNotNull(mi, "A method called GetCompanySize needs to be included"); Assert.AreEqual(typeof(string), mi.ReturnType, "The GetCompanySize() method needs to be type: string"); mi = type.GetMethod("GetProfit"); Assert.IsNotNull(mi, "A method called GetProfit needs to be included"); Assert.AreEqual(typeof(decimal), mi.ReturnType, "The GetProfit() method needs to be type: decimal"); }
public void Calculator_RequiredMembers() { Type type = typeof(Calculator); Calculator calculator = (Calculator)Activator.CreateInstance(type, 0); PropertyInfo prop = type.GetProperty("Result"); PropertyValidator.ValidateReadOnly(prop, "Result", typeof(int)); MethodInfo mi = type.GetMethod("Add"); Assert.IsNotNull(mi, "Calculator class needs the Add method."); Assert.AreEqual(typeof(int), mi.ReturnType, "Add(int addend) method needs to return type: int"); Assert.AreEqual(1, mi.GetParameters().Length, "Add(int addend) should have 1 parameter"); mi = type.GetMethod("Subtract"); Assert.IsNotNull(mi, "Calculator class needs the Subtract method."); Assert.AreEqual(typeof(int), mi.ReturnType, "Subtract(int subtrahend) method needs to return type: int"); Assert.AreEqual(1, mi.GetParameters().Length, "Subtract(int subtrahend) should have 1 parameter"); mi = type.GetMethod("Multiply"); Assert.IsNotNull(mi, "Calculator class needs the Multiply method."); Assert.AreEqual(typeof(int), mi.ReturnType, "Multiply(int multiplier) method needs to return type: int"); Assert.AreEqual(1, mi.GetParameters().Length, "Multiply(int multiplier) should have 1 parameter"); mi = type.GetMethod("Power"); Assert.IsNotNull(mi, "Calculator class needs the Power method."); Assert.AreEqual(typeof(int), mi.ReturnType, "Power(int exponent) method needs to return type: int"); Assert.AreEqual(1, mi.GetParameters().Length, "Power(int exponent) should have 1 parameter"); mi = type.GetMethod("Reset"); Assert.IsNotNull(mi, "Calculator class needs the Reset method."); Assert.AreEqual(typeof(void), mi.ReturnType, "Reset() method needs to return type: void"); Assert.AreEqual(0, mi.GetParameters().Length, "Reset() should have no parameters"); }
public void Elevator_HasRequiredMembers() { Type type = typeof(Elevator); Elevator elevator = (Elevator)Activator.CreateInstance(type, 3); PropertyInfo prop = type.GetProperty("CurrentLevel"); PropertyValidator.ValidateReadOnly(prop, "CurrentLevel", typeof(int)); prop = type.GetProperty("NumberOfLevels"); PropertyValidator.ValidateReadOnly(prop, "NumberOfLevels", typeof(int)); prop = type.GetProperty("DoorIsOpen"); PropertyValidator.ValidateReadOnly(prop, "DoorIsOpen", typeof(bool)); MethodInfo method = type.GetMethod("OpenDoor"); MethodValidator.ValidatePublicMethod(method, "OpenDoor", typeof(void)); method = type.GetMethod("CloseDoor"); MethodValidator.ValidatePublicMethod(method, "CloseDoor", typeof(void)); method = type.GetMethod("GoUp"); MethodValidator.ValidatePublicMethod(method, "GoUp", typeof(void)); Assert.AreEqual(1, method.GetParameters().Length, "GoUp should accept 1 parameter"); method = type.GetMethod("GoDown"); MethodValidator.ValidatePublicMethod(method, "GoDown", typeof(void)); Assert.AreEqual(1, method.GetParameters().Length, "GoDown should accept 1 parameter"); }
public void Airplane_HasRequiredMembers() { Type type = typeof(Airplane); Airplane Airplane = (Airplane)Activator.CreateInstance(type, "ABC123", 2, 3); PropertyInfo prop = type.GetProperty("PlaneNumber"); PropertyValidator.ValidateReadOnly(prop, "PlaneNumber", typeof(string)); prop = type.GetProperty("BookedFirstClassSeats"); PropertyValidator.ValidateReadOnly(prop, "BookedFirstClassSeats", typeof(int)); prop = type.GetProperty("AvailableFirstClassSeats"); PropertyValidator.ValidateReadOnly(prop, "AvailableFirstClassSeats", typeof(int)); prop = type.GetProperty("TotalFirstClassSeats"); PropertyValidator.ValidateReadOnly(prop, "TotalFirstClassSeats", typeof(int)); prop = type.GetProperty("BookedCoachSeats"); PropertyValidator.ValidateReadOnly(prop, "BookedCoachSeats", typeof(int)); prop = type.GetProperty("AvailableCoachSeats"); PropertyValidator.ValidateReadOnly(prop, "AvailableCoachSeats", typeof(int)); prop = type.GetProperty("TotalCoachSeats"); PropertyValidator.ValidateReadOnly(prop, "TotalCoachSeats", typeof(int)); MethodInfo method = type.GetMethod("ReserveSeats"); MethodValidator.ValidatePublicMethod(method, "ReserveSeats", typeof(bool)); }
public void Calculator_ResultProperty() { Type type = typeof(Calculator); Calculator calculator = (Calculator)Activator.CreateInstance(type, 0); PropertyInfo prop = type.GetProperty("Result"); PropertyValidator.ValidateReadOnly(prop, "Result", typeof(int)); }
public void ShoppingCart_TotalAmountOwedProperty() { Type type = typeof(ShoppingCart); ShoppingCart cart = (ShoppingCart)Activator.CreateInstance(type); PropertyInfo prop = type.GetProperty("TotalAmountOwed"); PropertyValidator.ValidateReadOnly(prop, "TotalAmountOwed", typeof(decimal)); }
public void ShoppingCart_TotalNumberOfItemsProperty() { Type type = typeof(ShoppingCart); ShoppingCart cart = (ShoppingCart)Activator.CreateInstance(type); PropertyInfo prop = type.GetProperty("TotalNumberOfItems"); PropertyValidator.ValidateReadOnly(prop, "TotalNumberOfItems", typeof(int)); }
public void Company_NameProperty() { Type type = typeof(Company); Company company = (Company)Activator.CreateInstance(type, "ACME"); PropertyInfo prop = type.GetProperty("Name"); PropertyValidator.ValidateReadOnly(prop, "Name", typeof(string)); }
public void Dog_IsSleepingProperty() { Type type = typeof(Dog); Dog dog = (Dog)Activator.CreateInstance(type); PropertyInfo prop = type.GetProperty("IsSleeping"); PropertyValidator.ValidateReadOnly(prop, "IsSleeping", typeof(bool)); }
public void Company_CheckRequiredMembers() { Type type = typeof(Company); Company company = (Company)Activator.CreateInstance(type, "ACME"); PropertyInfo prop = type.GetProperty("Name"); PropertyValidator.ValidateReadOnly(prop, "Name", typeof(string)); prop = type.GetProperty("NumberOfEmployees"); PropertyValidator.ValidateReadWrite(prop, "NumberOfEmployees", typeof(int)); prop = type.GetProperty("Revenue"); PropertyValidator.ValidateReadWrite(prop, "Revenue", typeof(decimal)); prop = type.GetProperty("Expenses"); PropertyValidator.ValidateReadWrite(prop, "Expenses", typeof(decimal)); FieldInfo fi = type.GetField("name", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(fi, "A field called name needs to exist"); Assert.AreEqual(typeof(string), fi.FieldType, "The name field needs to be type: string"); fi = type.GetField("numberOfEmployees", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(fi, "A field called numberOfEmployees needs to exist"); Assert.AreEqual(typeof(int), fi.FieldType, "The numberOfEmployees field needs to be type: int"); fi = type.GetField("revenue", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(fi, "A field called revenue needs to exist"); Assert.AreEqual(typeof(decimal), fi.FieldType, "The revenue field needs to be type: decimal"); fi = type.GetField("expenses", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(fi, "A field called expenses needs to exist"); Assert.AreEqual(typeof(decimal), fi.FieldType, "The expenses field needs to be type: decimal"); MethodInfo mi = type.GetMethod("GetCompanySize"); Assert.IsNotNull(mi, "A method called GetCompanySize needs to be included"); Assert.AreEqual(typeof(string), mi.ReturnType, "The GetCompanySize() method needs to be type: string"); mi = type.GetMethod("GetProfit"); Assert.IsNotNull(mi, "A method called GetProfit needs to be included"); Assert.AreEqual(typeof(decimal), mi.ReturnType, "The GetProfit() method needs to be type: decimal"); }
public void Homework_HasRequiredProperties() { Type type = typeof(HomeworkAssignment); PropertyInfo[] properties = type.GetProperties(); PropertyInfo prop = FindPropertyByName(properties, "EarnedMarks"); PropertyValidator.ValidateReadWrite(prop, "EarnedMarks", typeof(int)); prop = FindPropertyByName(properties, "PossibleMarks"); PropertyValidator.ValidateReadWrite(prop, "PossibleMarks", typeof(int)); prop = FindPropertyByName(properties, "SubmitterName"); PropertyValidator.ValidateReadWrite(prop, "SubmitterName", typeof(string)); prop = FindPropertyByName(properties, "LetterGrade"); PropertyValidator.ValidateReadOnly(prop, "LetterGrade", typeof(string)); }
public void FruitTree_HasRequiredMembers() { Type type = typeof(FruitTree); FruitTree tree = (FruitTree)Activator.CreateInstance(type, "Apple", 3); PropertyInfo[] properties = type.GetProperties(); PropertyInfo prop = FindPropertyByName(properties, "TypeOfFruit"); PropertyValidator.ValidateReadOnly(prop, "TypeOfFruit", typeof(string)); prop = FindPropertyByName(properties, "PiecesOfFruitLeft"); PropertyValidator.ValidateReadPrivateWrite(prop, "PiecesOfFruitLeft", typeof(int)); MethodInfo method = type.GetMethod("PickFruit"); Assert.IsNotNull(method, "You do not have the PickFruit method"); Assert.AreEqual(typeof(bool), method.ReturnType, "Your PickFruit method should return a bool"); Assert.AreEqual(true, method.IsPublic, "PickFruit should be a public method"); }
public void Homework_HasRequiredProperties() { Type type = typeof(HomeworkAssignment); HomeworkAssignment assignment = (HomeworkAssignment)Activator.CreateInstance(type, 100, "Default Name"); PropertyInfo[] properties = type.GetProperties(); PropertyInfo prop = FindPropertyByName(properties, "TotalMarks"); PropertyValidator.ValidateReadWrite(prop, "TotalMarks", typeof(int)); prop = FindPropertyByName(properties, "PossibleMarks"); PropertyValidator.ValidateReadOnly(prop, "PossibleMarks", typeof(int)); prop = FindPropertyByName(properties, "SubmitterName"); PropertyValidator.ValidateReadOnly(prop, "SubmitterName", typeof(string)); prop = FindPropertyByName(properties, "LetterGrade"); PropertyValidator.ValidateReadOnly(prop, "LetterGrade", typeof(string)); }
public void Television_HasRequiredMembers() { Type type = typeof(Television); Television tv = (Television)Activator.CreateInstance(type); PropertyInfo prop = type.GetProperty("IsOn"); PropertyValidator.ValidateReadOnly(prop, "IsOn", typeof(bool)); prop = type.GetProperty("CurrentChannel"); PropertyValidator.ValidateReadOnly(prop, "CurrentChannel", typeof(int)); prop = type.GetProperty("CurrentVolume"); PropertyValidator.ValidateReadOnly(prop, "CurrentVolume", typeof(int)); MethodInfo method = type.GetMethod("TurnOff"); MethodValidator.ValidatePublicMethod(method, "TurnOff", typeof(void)); method = type.GetMethod("TurnOn"); MethodValidator.ValidatePublicMethod(method, "TurnOn", typeof(void)); method = type.GetMethod("ChangeChannel"); MethodValidator.ValidatePublicMethod(method, "ChangeChannel", typeof(void)); Assert.AreEqual(1, method.GetParameters().Length, "ChangeChannel should accept 1 parameter"); method = type.GetMethod("ChannelUp"); MethodValidator.ValidatePublicMethod(method, "ChannelUp", typeof(void)); method = type.GetMethod("ChannelDown"); MethodValidator.ValidatePublicMethod(method, "ChannelDown", typeof(void)); method = type.GetMethod("RaiseVolume"); MethodValidator.ValidatePublicMethod(method, "RaiseVolume", typeof(void)); method = type.GetMethod("LowerVolume"); MethodValidator.ValidatePublicMethod(method, "LowerVolume", typeof(void)); }
public void Dog_RequiredMemberTests() { Type type = typeof(Dog); Dog dog = (Dog)Activator.CreateInstance(type); PropertyInfo prop = type.GetProperty("IsSleeping"); PropertyValidator.ValidateReadOnly(prop, "IsSleeping", typeof(bool)); MethodInfo mi = type.GetMethod("MakeSound"); Assert.IsNotNull(mi, "Dog class needs the MakeSound method."); Assert.AreEqual(typeof(string), mi.ReturnType, "MakeSound() method needs to return type: string"); mi = type.GetMethod("Sleep"); Assert.IsNotNull(mi, "Dog class needs the Sleep() method."); Assert.AreEqual(typeof(void), mi.ReturnType, "Sleep() method needs to return type: void"); mi = type.GetMethod("WakeUp"); Assert.IsNotNull(mi, "Dog class needs the WakeUp() method."); Assert.AreEqual(typeof(void), mi.ReturnType, "WakeUp() method needs to return type: void"); }
public void ShoppingCart_TotalNumberOfItemsProperty() { PropertyInfo prop = type.GetProperty("TotalNumberOfItems"); PropertyValidator.ValidateReadOnly(prop, "TotalNumberOfItems", typeof(int)); }
public void Dog_IsSleepingProperty() { PropertyInfo prop = type.GetProperty("IsSleeping"); PropertyValidator.ValidateReadOnly(prop, "IsSleeping", typeof(bool)); }
public void ShoppingCart_TotalAmountOwedProperty() { PropertyInfo prop = type.GetProperty("TotalAmountOwed"); PropertyValidator.ValidateReadOnly(prop, "TotalAmountOwed", typeof(decimal)); }
public void Calculator_ResultProperty() { PropertyInfo prop = type.GetProperty("Result"); PropertyValidator.ValidateReadOnly(prop, "Result", typeof(int)); }