예제 #1
0
        public void TestProvidedMethods()
        {
            var i1 = Guid.NewGuid();
            var i2 = Guid.NewGuid();

            var c1 = new CorrelationId(i1);
            var c2 = new CorrelationId(i2);

            Assert.AreEqual(i1.CompareTo(i2), c1.CompareTo(c2));                    // Compare correlation id and correlation id
            Assert.AreEqual(i1.CompareTo(i2), c1.CompareTo(i2));                    // Compare correlation id and Guid
            Assert.AreEqual(i1.CompareTo((object)i2), c1.CompareTo((object)c2));    // Compare correlation id and object cid
            Assert.AreEqual(i1.CompareTo((object)i2), c1.CompareTo((object)i2));    // Compare correlation id and object Guid

            Assert.IsTrue(c1.Equals(new CorrelationId(i1)));                        // Equals correlation id and correlation id
            Assert.IsFalse(c1.Equals(new CorrelationId(i2)));                       // Not equals correlation id and correlation id
            Assert.IsTrue(c1.Equals((object)new CorrelationId(i1)));                // Equals correlation id and object correlation id
            Assert.IsFalse(c1.Equals((object)new CorrelationId(i2)));               // Not equals correlation id and object correlation id

            Assert.IsTrue(c1.Equals(i1));                                           // Equals correlation id and Guid
            Assert.IsFalse(c1.Equals(i2));                                          // Not equals correlation id and Guid
            Assert.IsFalse(c1.Equals((object)i1));                                  // Not equals correlation id and object Guid
            Assert.IsFalse(c1.Equals((object)i2));                                  // Not equals correlation id and object Guid

            Assert.AreEqual(i1.GetHashCode(), c1.GetHashCode());                    // GetHashCode
            Assert.AreNotEqual(i2.GetHashCode(), c1.GetHashCode());                 
            Assert.AreEqual(c1.GetHashCode(), c1.GetHashCode());                    
            Assert.AreNotEqual(c2.GetHashCode(), c1.GetHashCode());                 

            CollectionAssert.AreEqual(i1.ToByteArray(), c1.ToByteArray());          // To byte array
            CollectionAssert.AreNotEqual(i2.ToByteArray(), c1.ToByteArray());
            CollectionAssert.AreEqual(i2.ToByteArray(), c2.ToByteArray());
            CollectionAssert.AreNotEqual(i1.ToByteArray(), c2.ToByteArray());                 


            Assert.AreEqual(i1.ToString(), c1.ToString());                          // To string
            Assert.AreNotEqual(i2.ToString(), c1.ToString());                       
            Assert.AreEqual(i2.ToString(), c2.ToString());                          
            Assert.AreNotEqual(i1.ToString(), c2.ToString());                       
                                                                                    
            Assert.AreEqual(i1.ToString("N"), c1.ToString("N"));                    // To string with format
            Assert.AreNotEqual(i2.ToString("N"), c1.ToString("N"));                 
            Assert.AreEqual(i2.ToString("N"), c2.ToString("N"));                    
            Assert.AreNotEqual(i1.ToString("N"), c2.ToString("N"));                 
                                                                                    
            var c = CultureInfo.CurrentCulture;                                     
            Assert.AreEqual(i1.ToString("D", c), c1.ToString("D", c));              // To string with format and provider
            Assert.AreNotEqual(i2.ToString("D", c), c1.ToString("D", c));           
            Assert.AreEqual(i2.ToString("D", c), c2.ToString("D", c));              
            Assert.AreNotEqual(i1.ToString("D", c), c2.ToString("D", c));           
        }
예제 #2
0
        public override void WriteTo(BinaryWriter writer)
        {
            base.WriteTo(writer);

            writer.Write((ushort)Flags);
            writer.Write(TransactionPosition);
            writer.Write(TransactionOffset);
            if (Version == LogRecordVersion.LogRecordV0)
            {
                int expectedVersion = ExpectedVersion == long.MaxValue - 1 ? int.MaxValue - 1 : (int)ExpectedVersion;
                writer.Write(expectedVersion);
            }
            else
            {
                writer.Write(ExpectedVersion);
            }

            writer.Write(EventStreamId);

            writer.Write(EventId.ToByteArray());
            writer.Write(CorrelationId.ToByteArray());
            writer.Write(TimeStamp.Ticks);
            writer.Write(EventType);
            writer.Write(Data.Length);
            writer.Write(Data.Span);
            writer.Write(Metadata.Length);
            writer.Write(Metadata.Span);
        }
예제 #3
0
        // Other simple types

        /// <summary> Write a <c>CorrelationId</c> value to the stream. </summary>
        internal void Write(CorrelationId id)
        {
            Write(id.ToByteArray());
        }
예제 #4
0
        // Other simple types

        /// <summary> Write a <c>CorrelationId</c> value to the stream. </summary>
        internal void Write(CorrelationId id)
        {
            Write(id.ToByteArray());
        }
 /// <summary> Write a <c>CorrelationId</c> value to the stream. </summary>
 internal static void Write(this IBinaryTokenStreamWriter @this, CorrelationId id)
 {
     @this.Write(id.ToByteArray());
 }