Esempio n. 1
0
 public static void AddField <ResultType, InputType>(this Records.Records Records, System.String ResultFieldName, System.String InputFieldName, System.Func <InputType, InputType, ResultType> Action)
 {
     if (Records.Count > 0)
     {
         Records.First.Add(ResultFieldName, default(ResultType));
         Records.Map((Record1, Record2) => Record2.Add(ResultFieldName, Action(Record1.Get <InputType>(InputFieldName), Record2.Get <InputType>(InputFieldName))));
     }
 }
Esempio n. 2
0
        public void FirstLevelProperty()
        {
            var record = new Record1(Guid.NewGuid(), "Record 1");
            var title  = "Record 2";
            var actual = Remute.Default.With(record, x => x.Title, title);

            Assert.AreEqual(record.Id, actual.Id);
            Assert.AreEqual(title, actual.Title);
        }
Esempio n. 3
0
        public void NestedProperty()
        {
            var record1 = new Record1(Guid.NewGuid(), "Record 1");
            var record2 = new Record2(record1, true);
            var id      = Guid.NewGuid();
            var actual  = Remute.Default.With(record2, x => x.Record1.Id, id);

            Assert.AreEqual(id, actual.Record1.Id);
        }
Esempio n. 4
0
        private static void CreateDeepCopyOfRecord(Record1 rec)
        {
            Record1 copyOfRecord = rec with
            {
                FirstName = "Tom"
            };

            Equals(rec, copyOfRecord);
        }
Esempio n. 5
0
        public void ArrayStructuresToTable()
        {
            var data = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim1",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col1" },
                ColumnUnits    = new string[] { null }
            };

            var value1 = new Record1()
            {
                a = 1,
                b = new Record2[]
                {
                    new Record2()
                    {
                        c = 2
                    },
                    new Record2()
                    {
                        c = 3
                    }
                }
            };
            var value2 = new Record1()
            {
                a = 4,
                b = new Record2[]
                {
                    new Record2()
                    {
                        c = 5
                    },
                    new Record2()
                    {
                        c = 6
                    }
                }
            };


            data.Rows.Add(new List <object>()
            {
                value1
            });
            data.Rows.Add(new List <object>()
            {
                value2
            });

            Assert.AreEqual(Utilities.TableToString(data.ToTable()),
                            "Col1.a,Col1.b(1).c,Col1.b(2).c\r\n" +
                            "     1,          2,          3\r\n" +
                            "     4,          5,          6\r\n");
        }
Esempio n. 6
0
        public void ArrayStructuresToTable()
        {
            var data = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim1",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col1" },
                ColumnUnits    = new string[] { null }
            };

            var value1 = new Record1()
            {
                a = 1,
                b = new Record2[]
                {
                    new Record2()
                    {
                        c = 2
                    },
                    new Record2()
                    {
                        c = 3
                    }
                }
            };
            var value2 = new Record1()
            {
                a = 4,
                b = new Record2[]
                {
                    new Record2()
                    {
                        c = 5
                    },
                    new Record2()
                    {
                        c = 6
                    }
                }
            };


            data.Rows.Add(new List <object>()
            {
                value1
            });
            data.Rows.Add(new List <object>()
            {
                value2
            });

            string expected = ReflectionUtilities.GetResourceAsString("UnitTests.Report.ArrayStructuresToTable.Expected.txt");

            Assert.AreEqual(Utilities.TableToString(data.ToTable()), expected);
        }
Esempio n. 7
0
        private static void RecordAfterInheritanceExample(Record1 rec)
        {
            Console.WriteLine("RecordAfterInheritanceExample: ");

            var recordAfterInheritance = new RecordAfterInheritance(1, rec.FirstName, rec.LastName);

            Console.WriteLine($"RecordAfterInheritance: {rec}");

            Console.WriteLine($"{recordAfterInheritance} == {rec} => {recordAfterInheritance == rec}");
        }
Esempio n. 8
0
        public void EqualsShouldReturnFalse()
        {
            // Arrange
            var first  = new Record1("value 1");
            var second = new Record1("value 2");

            // Act
            var result = first.Equals(second);

            // Assert
            result.Should().BeFalse();
        }
Esempio n. 9
0
        public void OperatorNotEqualToOverloadingShouldReturnFalse()
        {
            // Arrange
            var first  = new Record1("value");
            var second = new Record1("value");

            // Act
            var result = first != second;

            // Assert
            result.Should().BeFalse();
        }
Esempio n. 10
0
        public void TestExpressionifyRecord()
        {
            var data = new[] {
                "1",
                "2",
                "3"
            };

            var result = data.AsQueryable()
                         .Expressionify()
                         .Select(x => Record1.Create(x))
                         .ToList();

            result.ShouldBe(new Record1[] { new("1"), new("2"), new("3") });
Esempio n. 11
0
        public void MutableDataRecordCanBeModified()
        {
            // --- Act
            var record = new Record1 {
                Id = 123, DisplayName = "Hello"
            };
            var dataRecord = (IDataRecord)record;

            // --- Assert
            record.Id.ShouldEqual(123);
            record.DisplayName.ShouldEqual("Hello");
            dataRecord.IsModified("Id").ShouldBeFalse();
            dataRecord.IsModified("DisplayName").ShouldBeFalse();
        }
        static void Main(string[] args)
        {
            Record1 r1a = new("FirstName1", "LastName1");
            Record1 r2a = new("FirstName1", "LastName1");
            Record1 r3a = new("FirstName3", "LastName3");

            class1 c1a = new class1("ClassFirstName1", "ClassLastName1");
            class1 c2a = new class1("ClassFirstName1", "ClassLastName1");
            class1 c3a = new class1("ClassFirstName3", "ClassLastName3");

            Console.WriteLine("Record Type:");
            Console.WriteLine($"To String : {r1a} ");
            Console.WriteLine($"Are the two objects equal? {Equals(r1a,r2a)}");
            Console.WriteLine($"Are the two references equal? {ReferenceEquals(r1a, r2a)}");
            Console.WriteLine($"Are the two objects ==? {r1a == r2a}");
            Console.WriteLine($"Has code of Record 1: {r1a.GetHashCode() }");
            Console.WriteLine($"Has code of Record 2: {r2a.GetHashCode() }");
            Console.WriteLine($"Has code of Record 3: {r3a.GetHashCode() }");

            Console.WriteLine("**************************************************");
            Console.WriteLine("Class Type:");
            Console.WriteLine($"To String : {c1a} ");
            Console.WriteLine($"Are the two objects equal? {Equals(c1a, c2a)}");
            Console.WriteLine($"Are the two references equal? {ReferenceEquals(c1a, c2a)}");
            Console.WriteLine($"Are the two objects ==? {c1a == c2a}");
            Console.WriteLine($"Has code of Class 1: {c1a.GetHashCode() }");
            Console.WriteLine($"Has code of Class 2: {c2a.GetHashCode() }");
            Console.WriteLine($"Has code of Class 3: {c3a.GetHashCode() }");
            Console.WriteLine();

            // Anonymous tuples
            var(fn, ln) = r1a;
            Console.WriteLine($"The value of fn is {fn} and the value of ln is {ln}"); // Deconstructor of record used

            Record1 r4a = r1a with
            {
                FirstName = "NewFirstName1"
            };

            Console.WriteLine($"Updated Record1: {r4a}");
            Console.WriteLine();
            RecordB rb1 = new RecordB("NewFirstName1", "NewLastName2");

            Console.WriteLine($"Record B Instance 1 value: {rb1}");
            //Console.WriteLine($"Record B Instance 1 value - expanded: {rb1.FirstName} : {rb1.LastName} - Full Name : {rb1.FullName}");
            Console.WriteLine(rb1.SayHello());
            Console.ReadLine();
        }
    }
Esempio n. 13
0
        static void Main(string[] args)
        {
            Console.WriteLine("Record");
            Record1 r1 = new Record1("Prasad", "Honrao");

            Console.WriteLine(r1.ToString());

            Console.WriteLine("*************");

            Console.WriteLine("Class");
            Class1 c1 = new Class1("Bill", "Gates");

            Console.WriteLine(c1.ToString());

            Console.ReadLine();
        }
Esempio n. 14
0
        public void CloneWorksAsExpected()
        {
            // --- Arrange
            var original = new Record1 {
                Id = 23, DisplayName = "Original"
            };

            // --- Act
            var clone = ((ICloneableRecord <Record1>)original).Clone();

            // ---
            clone.ShouldBeOfType(typeof(Record1));
            clone.ShouldNotBeSameAs(original);
            clone.Id.ShouldEqual(original.Id);
            clone.DisplayName.ShouldEqual(original.DisplayName);
        }
Esempio n. 15
0
        public static void Main(string[] args)
        {
            var frodoRecord1 = new Record1("Frodo", "Baggins");
            var frodoRecord2 = new Record1("Frodo", "Baggins");

            var frodoClass1 = new Class1("Frodo", "Baggins");
            var frodoClass2 = new Class1("Frodo", "Baggins");

            Console.WriteLine("Record Type:");
            Console.WriteLine($"To String: {frodoRecord1}");
            Console.WriteLine($"Are the two objects equal: {Equals(frodoRecord1, frodoRecord2)}");
            Console.WriteLine($"Are the two objects reference equal: {ReferenceEquals(frodoRecord1, frodoRecord2)}");
            Console.WriteLine($"Are the two objects ==: {frodoRecord1 == frodoRecord2}");
            Console.WriteLine($"Hash code of object a: {frodoRecord1.GetHashCode()}");
            Console.WriteLine($"Hash code of object b: {frodoRecord2.GetHashCode()}");

            Console.WriteLine();
            Console.WriteLine("**********");
            Console.WriteLine();

            Console.WriteLine("Class Type:");
            Console.WriteLine($"To String: {frodoClass1}");
            Console.WriteLine($"Are the two objects equal: {Equals(frodoClass1, frodoClass2)}");
            Console.WriteLine($"Are the two objects reference equal: {ReferenceEquals(frodoClass1, frodoClass2)}");
            Console.WriteLine($"Are the two objects ==: {frodoClass1 == frodoClass2}");
            Console.WriteLine($"Hash code of object a: {frodoClass1.GetHashCode()}");
            Console.WriteLine($"Hash code of object b: {frodoClass2.GetHashCode()}");

            Console.WriteLine();

            var (fn, ln) = frodoRecord1;
            Console.WriteLine($"Deconstructed Name: {fn} {ln}");

            var bilboRecord = frodoRecord1 with
            {
                FirstName = "Bilbo"
            }; 
            Console.WriteLine($"Bilbo's Record: {bilboRecord}");

            Console.WriteLine();
            Record2 pippinRecord = new ("Peregrin", "Took");
            Console.WriteLine($"Pippin record value: {pippinRecord}");
            Console.WriteLine($"Pippin fn: {pippinRecord.FirstName} ln: {pippinRecord.LastName}");
            Console.WriteLine(pippinRecord.SayHello());
        }
    }
Esempio n. 16
0
        public void ModifiedPropertiesAreMarked()
        {
            // --- Act
            var record = new Record1 {
                Id = 123, DisplayName = "Hello"
            };
            var dataRecord = (IDataRecord)record;

            dataRecord.SignLoaded();
            record.Id = 234;

            // --- Assert
            record.Id.ShouldEqual(234);
            record.DisplayName.ShouldEqual("Hello");
            dataRecord.IsModified("Id").ShouldBeTrue();
            dataRecord.IsModified("DisplayName").ShouldBeFalse();
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var record1 = new Record1("Lilo", "Gruberszt");
            var record2 = new Record1("Izka", "Marliska");
            var record3 = new Record1("Szarlotka", "Krowiejka");
            var record4 = new Record1("Mailo", "Pikorz");

            var rec = new Record1("Lilo", "Gruberszt");

            Equals(rec, record1);
            Equals(rec, record2);
            Equals(rec, record3);
            Equals(rec, record4);

            RunDeconstructForRecord(rec);

            CreateDeepCopyOfRecord(rec);

            RecordWithOverridenProperty();

            RecordAfterInheritanceExample(rec);

            var class1 = new Class1("Lilo", "Gruberszt");
            var class2 = new Class1("Izka", "Marliska");
            var class3 = new Class1("Szarlotka", "Krowiejka");
            var class4 = new Class1("Mailo", "Pikorz");

            var c = new Class1("Lilo", "Gruberszt");

            Equals(c, class1);
            Equals(c, class2);
            Equals(c, class3);
            Equals(c, class4);

            class1.Deconstruct(out var fn2, out var ln2);
            Console.WriteLine($"Deconstructor values => {fn2}, {ln2}");
        }
Esempio n. 18
0
        public void ArrayStructuresToTable()
        {
            var data = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim1",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col1" },
                ColumnUnits    = new string[] { null }
            };

            var value1 = new Record1()
            {
                a = 1,
                b = new Record2[]
                {
                    new Record2()
                    {
                        c = 2
                    },
                    new Record2()
                    {
                        c = 3
                    }
                }
            };
            var value2 = new Record1()
            {
                a = 4,
                b = new Record2[]
                {
                    new Record2()
                    {
                        c = 5
                    },
                    new Record2()
                    {
                        c = 6
                    }
                }
            };


            data.Rows.Add(new List <object>()
            {
                value1
            });
            data.Rows.Add(new List <object>()
            {
                value2
            });


            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "Col1.a", "Col1.b(1).c", "Col1.b(2).c" },
                                      new List <object[]> {
                new object[] { 1, 2, 3 },
                new object[] { 4, 5, 6 }
            })
                .IsSame(data.ToTable()));
        }
 bool Equals(Record1 other)
 {
     return(Type == other.Type && string.Equals(Description, other.Description) && Value == other.Value);
 }
Esempio n. 20
0
 static void Equals(Record1 a, Record1 b)
 {
     Console.WriteLine($"{a} == {b} => {a == b}");
 }
Esempio n. 21
0
 private static void RunDeconstructForRecord(Record1 rec)
 {
     var(fn, ln) = rec;
     Console.WriteLine($"Deconstructor values => {fn}, {ln}");
 }
Esempio n. 22
0
 public override string ToString()
 {
     return(IsMatch.ToString() + "\n" + Record1.ToString() + "\n" + Record2.ToString() + "\n");
 }