示例#1
0
        public void GEDCOMDocument_Save_Saves_Document_Regardless_Of_Record_Order_And_Type(string fileName, int recordCount)
        {
            //Arrange
            var document = new GEDCOMDocument();

            if (recordCount > 0)
            {
                document.AddRecord(Util.CreateIndividualRecord(1));
            }

            document.AddRecord(Util.CreateHeaderRecord(fileName));

            if (recordCount > 1)
            {
                document.AddRecord(Util.CreateIndividualRecord(2));
            }

            var sb     = new StringBuilder();
            var writer = GEDCOMWriter.Create(sb);

            writer.NewLine = "\n";

            //Act
            document.Save(writer);

            //Assert
            GEDCOMAssert.IsValidOutput(GetEmbeddedFileString(fileName), sb);
        }
示例#2
0
        public void GEDCOMDocument_RemoveRecord_Throws_If_Record_IsNull()
        {
            var document = new GEDCOMDocument();

            //Assert
            Assert.Throws <ArgumentNullException>(() => document.RemoveRecord(null));
        }
示例#3
0
        public void GEDCOMDocument_AddRecords_Exception_If_RecordList_IsNull()
        {
            var document = new GEDCOMDocument();

            //Assert
            Assert.Throws <ArgumentNullException>(() => document.AddRecords(null));
        }
示例#4
0
        public void GEDCOMDocument_Load_Throws_If_GEDCOMReader_Parameter_IsNull()
        {
            GEDCOMReader reader   = null;
            var          document = new GEDCOMDocument();

            //Assert
            Assert.Throws <ArgumentNullException>(() => document.Load(reader));
        }
示例#5
0
        public void GEDCOMDocument_Save_If_Stream_Parameter_IsNull()
        {
            var s        = GetEmbeddedFileStream("InvalidFileName");
            var document = new GEDCOMDocument();

            //Assert
            Assert.Throws <ArgumentNullException>(() => document.Save(s));
        }
示例#6
0
        public void GEDCOMDocument_Save_If_GEDCOMWriter_Parameter_IsNull()
        {
            GEDCOMWriter writer   = null;
            var          document = new GEDCOMDocument();

            //Assert
            Assert.Throws <ArgumentNullException>(() => document.Save(writer));
        }
        private void LoadDocument()
        {
            _document = new GEDCOMDocument();

            using (var stream = new FileStream(_path, FileMode.Open, FileAccess.Read))
            {
                _document.Load(stream);
            }
        }
        public void GEDCOMDocument_SelectChildsFamilyRecord_Throws_On_Null_Or_Empty_ChildId(string fileName, string childId)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));

            //Act, Assert
            Assert.Throws <ArgumentNullException>(() => document.SelectChildsFamilyRecord(childId));
        }
        private int GetIndividualCount(string file)
        {
            string fileName   = Path.Combine(FilePath, file);
            Stream testStream = new FileStream(fileName, FileMode.Open);
            var    doc        = new GEDCOMDocument();

            doc.Load(testStream);

            return(doc.IndividualRecords.Count);
        }
        public void GEDCOMDocument_SelectFamilyRecords_Throws_On_Null_Or_Empty_IndividualId(string fileName, string individualId)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));

            //Act, Assert
            Assert.Throws <ArgumentException>(() => document.SelectFamilyRecords(individualId));
        }
        public void GEDCOMDocument_SelectFamilyRecord_Throws_On_Null_WifeId(string fileName, string husbandId, string wifeId)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));

            //Act, Assert
            Assert.Throws <ArgumentNullException>(() => document.SelectFamilyRecord(husbandId, wifeId));
        }
示例#12
0
        public void GEDCOMDocument_LoadGEDCOM_Loads_Document_With_Individuals(string fileName, int recordCount)
        {
            //Arrange
            var document = new GEDCOMDocument();

            //Act
            document.LoadGEDCOM(GetEmbeddedFileString(fileName));

            //Assert
            Assert.AreEqual(recordCount, document.IndividualRecords.Count);
        }
示例#13
0
        public void GEDCOMDocument_AddRecord_Adds_HeaderRecord()
        {
            //Arrange
            var document = new GEDCOMDocument();
            var record   = new GEDCOMHeaderRecord();

            //Act
            document.AddRecord(record);

            //Assert
            Assert.IsNotNull(document.SelectHeader());
        }
        public void GEDCOMDocument_SelectFamilyRecord_Returns_Null_When_Given_InValid_HusbandId_Or_WifeId(string fileName, string husbandId, string wifeId)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));

            //Act
            var record = document.SelectFamilyRecord(husbandId, wifeId);

            //Assert
            Assert.IsNull(record);
        }
示例#15
0
        public void GEDCOMDocument_AddRecord_Adds_Record_To_Individuals_Collection()
        {
            //Arrange
            var document = new GEDCOMDocument();
            var record   = new GEDCOMIndividualRecord(1);
            int count    = document.IndividualRecords.Count;

            //Act
            document.AddRecord(record);

            //Assert
            Assert.AreEqual(count + 1, document.IndividualRecords.Count);
        }
        public void GEDCOMDocument_SelectChildsFamilyRecord_Returns_Null_When_Given_InValid_ChildId(string fileName, string childId)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));

            //Act
            var record = document.SelectChildsFamilyRecord(childId);

            //Assert
            Assert.IsNull(record);
        }
        public void GEDCOMDocument_SelectFamilyRecords_Returns_List_Of_Families(string fileName, string individualId, int recordCount)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));

            //Act
            var records = document.SelectFamilyRecords(individualId);

            //Assert
            Assert.AreEqual(recordCount, records.Count());
        }
示例#18
0
        public void GEDCOMDocument_Load_Loads_Document_With_Header_If_Document_Is_WellFormed(string fileName)
        {
            //Arrange
            var document = new GEDCOMDocument();

            //Act
            using (Stream s = GetEmbeddedFileStream(fileName))
            {
                document.Load(new StreamReader(s));
            }

            GEDCOMAssert.IsValidHeader(document.SelectHeader());
            GEDCOMAssert.HeaderIsEqual(Util.CreateHeaderRecord(fileName), document.SelectHeader());
        }
        public void GEDCOMDocument_SelectFamilyRecord_Returns_Family_When_Given_Valid_Id(string fileName, string familyId)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));

            //Act
            var record = document.SelectFamilyRecord(familyId);

            //Assert
            Assert.IsNotNull(record);
            Assert.AreEqual(record.Id, familyId);
        }
示例#20
0
        public void GEDCOMDocument_Load_Loads_Document_With_Individuals_Using_TextReader(string fileName, int recordCount)
        {
            //Arrange
            var document = new GEDCOMDocument();

            //Act
            using (Stream s = GetEmbeddedFileStream(fileName))
            {
                document.Load(new StreamReader(s));
            }

            //Assert
            Assert.AreEqual(recordCount, document.IndividualRecords.Count);
        }
        public void GEDCOMDocument_SelectIndividualRecord_Returns_Null_When_Given_InValid_Id(string fileName, int recordNo)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));
            string id = String.Format("@I{0}@", recordNo);

            //Act
            var record = document.SelectIndividualRecord(id);

            //Assert
            Assert.IsNull(record);
        }
        public void GEDCOMDocument_SelectFamilyRecords_Returns_Family_When_Given_Valid_WifeId(string fileName, string wifeId, string familyId)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.LoadGEDCOM(GetEmbeddedFileString(fileName));
            string husbandId = String.Empty;

            //Act
            var record = document.SelectFamilyRecords(wifeId).SingleOrDefault();

            //Assert
            Assert.IsNotNull(record);
            Assert.AreEqual(record.Id, familyId);
        }
示例#23
0
        public void GEDCOMDocument_RemoveRecord_Throws_If_Record_Not_Present()
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.AddRecord(Util.CreateHeaderRecord("Header"));
            for (int i = 1; i <= 2; i++)
            {
                document.AddRecord(Util.CreateIndividualRecord(i));
            }

            var record = Util.CreateIndividualRecord(3);

            //Assert
            Assert.Throws <ArgumentOutOfRangeException>(() => document.RemoveRecord(record));
        }
示例#24
0
        public void GEDCOMDocument_AddRecords_Add_Records_To_Individuals_Collection(int recordCount)
        {
            //Arrange
            var document = new GEDCOMDocument();
            var records  = new GEDCOMRecordList();
            int count    = document.Records.Count;

            for (int i = 1; i <= recordCount; i++)
            {
                records.Add(Util.CreateIndividualRecord(i));
            }

            //Act
            document.AddRecords(records);

            //Assert
            Assert.AreEqual(count + recordCount, document.IndividualRecords.Count);
        }
示例#25
0
        public void GEDCOMDocument_SaveGEDCOM_Saves_Document(string fileName, int individualCount, int familyCount)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.AddRecord(Util.CreateHeaderRecord(fileName));
            for (int i = 1; i <= individualCount; i++)
            {
                document.AddRecord(Util.CreateIndividualRecord(i));
            }
            for (int i = 1; i <= familyCount; i++)
            {
                document.AddRecord(Util.CreateFamilyRecord(i));
            }

            //Assert
            GEDCOMAssert.IsValidOutput(GetEmbeddedFileString(fileName), document.SaveGEDCOM());
        }
示例#26
0
        public void GEDCOMDocument_RemoveRecord_Removes_Record_From_Individuals_Collection()
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.AddRecord(Util.CreateHeaderRecord("Header"));
            for (int i = 1; i <= 2; i++)
            {
                document.AddRecord(Util.CreateIndividualRecord(i));
            }

            var record = document.IndividualRecords[1] as GEDCOMIndividualRecord;

            //Act
            document.RemoveRecord(record);

            //Assert
            Assert.AreEqual(1, document.IndividualRecords.Count);
        }
示例#27
0
        public void GEDCOMDocument_Save_Saves_Document_Using_TextWriter(string fileName, int recordCount)
        {
            //Arrange
            var document = new GEDCOMDocument();

            document.AddRecord(Util.CreateHeaderRecord(fileName));
            for (int i = 1; i <= recordCount; i++)
            {
                document.AddRecord(Util.CreateIndividualRecord(i));
            }

            var sb     = new StringBuilder();
            var writer = new StringWriter(sb);

            writer.NewLine = "\n";

            //Act
            document.Save(writer);

            //Assert
            GEDCOMAssert.IsValidOutput(GetEmbeddedFileString(fileName), sb);
        }