public void GenerateXml() { var type = typeof(MemberOverrideTestClass.Target); var mixinConfiguration = MixinConfiguration.BuildNew().ForClass <MemberOverrideTestClass.Target> ().AddMixin <MemberOverrideTestClass.Mixin1> ().BuildConfiguration(); var targetClassDefinition = new ReflectedObject(TargetClassDefinitionUtility.GetConfiguration(type, mixinConfiguration)); var involvedType = new InvolvedType(type); involvedType.TargetClassDefinition = targetClassDefinition; var memberIdentifierGenerator = new IdentifierGenerator <MemberInfo> (); var reportGenerator = new MemberReportGenerator(type, involvedType, new IdentifierGenerator <Type> (), memberIdentifierGenerator, _outputFormatter); var output = reportGenerator.GenerateXml(); var expectedOutput = new XElement( "Members", new XElement( "Member", new XAttribute("id", "0"), new XAttribute("type", MemberTypes.Constructor), new XAttribute("name", ".ctor"), new XAttribute("is-declared-by-this-class", true), _outputFormatter.CreateModifierMarkup("", "public"), _outputFormatter.CreateConstructorMarkup("Target", new ParameterInfo[0]) ), new XElement( "Member", new XAttribute("id", "1"), new XAttribute("type", MemberTypes.Method), new XAttribute("name", "OverriddenMethod"), new XAttribute("is-declared-by-this-class", true), _outputFormatter.CreateModifierMarkup("", "public virtual"), _outputFormatter.CreateMethodMarkup("OverriddenMethod", typeof(void), new ParameterInfo[0]), GenerateOverrides("Mixin-Reference", "0", "MemberOverrideTestClass+Mixin1") ), new XElement( "Member", new XAttribute("id", "3"), new XAttribute("type", MemberTypes.Method), new XAttribute("name", "TemplateMethod"), new XAttribute("is-declared-by-this-class", true), _outputFormatter.CreateModifierMarkup("OverrideMixin ", "public"), _outputFormatter.CreateMethodMarkup("TemplateMethod", typeof(void), new ParameterInfo[0]), GenerateOverriddenMember("2", "TemplateMethod", "Void TemplateMethod()") ) ); XElementComparisonHelper.Compare(output, expectedOutput); }
/** * Creates a new SchedulerInterface which then runs the accounting procedure. */ public SchedulerInterface() { //for communciation with the tester UserInterface ui = new UserInterface(); ui.message("\nRunning the accounting procedure ...\n"); //Use today's date for all reports DateTime now = new DateTime(); try { //Generate provider reports ui.message("Generating the providers' reports ..."); Providers providers = new Providers(); providers.open(); List <Person> allProviders = providers.getAll(); foreach (Person person in allProviders) { Provider provider = (Provider)person; ProviderReportGenerator generator = new ProviderReportGenerator(provider, now); ProviderReport theReport = generator.getReport(); if (theReport.getDetailCount() > 0) { theReport.sendByEmail(provider.getName()); } } providers.close(); //Generate member reports ui.message("Generating the members' reports ..."); Members members = new Members(); members.open(); List <Person> allMembers = members.getAll(); foreach (Person person in allMembers) { Member member = (Member)person; MemberReportGenerator generator = new MemberReportGenerator(member, now); MemberReport theReport = generator.getReport(); if (theReport.getDetailCount() > 0) { theReport.sendByEmail(member.getName()); } } members.close(); //Generate accounts payable report ui.message("Generating the accounts payable report ..."); AccountsPayableReportGenerator generator = new AccountsPayableReportGenerator(now); generator.getReport().sendByEmail("Accounts Payable"); //Generate EFT data ui.message("Generating the EFT data ..."); EFTReportGenerator eftGenerator = new EFTReportGenerator(now); eftGenerator.getReport().print("EFT Data"); ui.message("\nAccounting procedure completed successfully.\n\n"); } catch (FileNotFoundException ex) { //occurs if a file cannot be created ui.errorMessage(ex.Message); } }//default constructor