Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6678489
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T04:14:58+00:00 2026-05-26T04:14:58+00:00

So I’ve been working through some issues, and I’m real close, but I’m running

  • 0

So I’ve been working through some issues, and I’m real close, but I’m running into a problem.

So here’s how I call my factory:

ClassImporter classImporter = new ClassImporter(importOptions);

There are multiple types of ClassImporter objects, here’s the base ClassImporter class with one of the types.

public class ClassImporter
    {
        public ImportOptions Options;
        public ClassImporter Importer;

        public ClassImporter()
        {

        }

        public ClassImporter(ImportOptions options)
        {
            this.Options = options;
            this.Importer = ClassImporterFactory.GetImporter(options);
        }

        public virtual List<Class> Import()
        {
            return Importer.Import();
        }
    }

public class ExcelImporter : ClassImporter, IClassImporter
    {
        public ExcelImporter() : base()
        {

        }

        public override List<Class> Import()
        {
            if (base.Options.FileLocation == string.Empty)
            {
                throw new BlankFilenameException("A blank Excel file location was supplied.");
            }
            return new List<Class>();
        }
    }

And here’s that Factory class you see in there:

public class ClassImporterFactory
    {
        public static ClassImporter GetImporter(ImportOptions options)
        {
            switch (options.FileType)
            {
                case FileType.CSV:
                    return new CSVImporter(options);
                case FileType.Excel:
                    return new ExcelImporter();
                case FileType.MySQL:
                    return new MySQLImporter(options);
                case FileType.Oracle:
                    return new OracleImporter(options);
                case FileType.ScreenScraper:
                    return new ScreenScraperImporter(options);
                case FileType.SQL:
                    return new SQLImporter(options);
                case FileType.XML:
                    return new XMLImporter(options);
                case FileType.NotSet:
                default:
                    throw new BlankImportTypeException("Import type was not specified in the Import Options.");

            }
        }
    }

Now I’m trying to Assert on that Exception you see in the ExcelImporter class, with this line:

classImporter.Import();

My test is attributed to have an ExpectedException, but it looks like when I debug through it, that the Importer hosted on the ClassImporter class is basically looking at it’s own options instead of the base options of the main class that created it, and then therefore doesn’t see the options passed in, just a null copy of them.

How can I redo this?

EDIT: Full Test:

[TestMethod]
        [ExpectedException(typeof(BlankFilenameException), "A blank Excel file location was supplied.")]
        public void LoadExcelFile_EmptyName_ReturnsBlankFilenameException()
        {
            ImportOptions importOptions = new ImportOptions(FileType.Excel, string.Empty);
            ClassImporter classImporter = new ClassImporter(importOptions);

            classImporter.Import();
        }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T04:14:59+00:00Added an answer on May 26, 2026 at 4:14 am

    ExcelImporter’s the only one of your classes that you’re using the default constructor for. So it never sets the Options field. The parameterless base constructor doesn’t set it either.
    So, basically, you make a ClassImporter instance with the right options, and set its Importer property to a new ExcelImporter instance with no options.

    You can fix this in a few ways, but the easiest way is to make ExcelImporter work the same as your other subclasses and have a constructor that takes ImportOptions. Then call that constructor from GetImporter. Don’t chain them though – that’ll loop forever.

    Really, I don’t understand why ExcelImporter’s a derived class of ClassImporter. It doesn’t use any of ClassImporter’s functionality, and you’re setting yourself up for an infinite loop with constructors. Just give it the options when you make the instance.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a French site that I want to parse, but am running into
I am currently running into a problem where an element is coming back from
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
I have a jquery bug and I've been looking for hours now, I can't
I have just tried to save a simple *.rtf file with some websites and
I want to count how many characters a certain string has in PHP, but
For some reason, after submitting a string like this Jack’s Spindle from a text
this is what i have right now Drawing an RSS feed into the php,
Seemingly simple, but I cannot find anything relevant on the web. What is the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.