public void verify_can_get_the_header_elements_from_the_csv()
        {
            string[] headerElements = new string[] { "First Name", "Last Name", "Mailing Address", "City", "State", "Zip", "Email"};

            CsvImporter importer = new CsvImporter(_pathToCsv, _schemaFilePath, _repository);
            List<string> csvHeaders = importer.GetHeaderElements();
            Assert.AreEqual(7, csvHeaders.Count); //There are 7 header elements
            Random rdm = new Random((int)DateTime.Now.Ticks);
            int idx = rdm.Next(headerElements.Length -1);

            Assert.AreEqual(headerElements[idx], csvHeaders[idx]);
        }
        public void verify_can_update_a_field_successfully_on_update()
        {
            CsvImporter importer = new CsvImporter(_pathToCsv, _schemaFilePath, _repository);
            bool eventRaised = false;

            importer.ImportData();
            importer.OnRecordsImported += delegate(object sender, RecordsImportedEventArgs args)
            {
                Assert.AreEqual(0, args.ImportRowCount);
                Assert.AreEqual(1, args.UpdateCount);
                foreach (DictionaryEntry updateField in args.FieldsUpdated)
                {
                    Assert.AreEqual("Address", updateField.Key);
                    Assert.AreEqual("2660 Loopridge Drive", updateField.Value);
                }
                eventRaised = true;
            };

            // Import data a second time with the same rows
            importer.ImportData();
            Assert.IsTrue(eventRaised);
        }
        public void verify_will_not_create_a_new_row_in_the_database_for_an_existing_record()
        {
            CsvImporter importer = new CsvImporter(_pathToCsv, _schemaFilePath, _repository);
            bool eventRaised = false;

            importer.ImportData();
            importer.OnRecordsImported += delegate(object sender, RecordsImportedEventArgs args)
            {
                Assert.AreEqual(0, args.ImportRowCount);
                eventRaised = true;
            };

            // Import data a second time with the same rows
            importer.ImportData();
            Assert.IsTrue(eventRaised);
        }
 public void TestSetup()
 {
     _mock = new MockRepository();
     _repository = _mock.CreateMock<IUserRepository>();
     _importer = new CsvImporter(_pathToCsv, _schemaFilePath, _repository);
 }
 public void verify_file_will_fail_if_column_names_do_not_map_to_the_schema()
 {
     bool exceptionRaised = false;
     try
     {
         CsvImporter importer = new CsvImporter(_pathToBadCsv, _schemaFilePath, _repository);
     } catch (XmlSchemaValidationException ex)
     {
         exceptionRaised = true;
         const string exception = "The element 'ImportData' has invalid child element 'DoDa'. List of possible elements expected: 'Email'.";
         string expectedMessage = string.Format(CsvImporter.SchemValidationMessageFormat, _schemaFilePath, exception,
                       XmlSeverityType.Error);
         Assert.AreEqual(expectedMessage, ex.Message);
     }
     Assert.IsTrue(exceptionRaised);
 }