public void EqualityHasValueSemantics() { // With identifier { var de1 = new DamlEnum(IdentifierFactory.Id1, "constructor1"); var de2 = new DamlEnum(IdentifierFactory.Id2, "constructor2"); var de3 = new DamlEnum(IdentifierFactory.Id1, "constructor1"); Assert.IsTrue(de1.Equals(de1)); Assert.IsTrue(de1 == de1); Assert.IsTrue(de1.Equals(de3)); Assert.IsTrue(de1 == de3); Assert.IsFalse(de1.Equals(de2)); Assert.IsTrue(de1 != de2); } // Without identifier { var de1 = new DamlEnum("constructor1"); var de2 = new DamlEnum("constructor2"); var de3 = new DamlEnum("constructor1"); Assert.IsTrue(de1.Equals(de3)); Assert.IsTrue(de1 == de3); Assert.IsFalse(de1.Equals(de2)); Assert.IsTrue(de1 != de2); } }
private void ConvertThroughProto(DamlEnum source) { Com.DigitalAsset.Ledger.Api.V1.Value protoValue = source.ToProto(); var maybe = Value.FromProto(protoValue).AsEnum(); Assert.AreEqual(typeof(Some <DamlEnum>), maybe.GetType()); Assert.IsTrue(source == (Some <DamlEnum>)maybe); }
private void ConvertThroughProto(DamlEnum source) { Com.Daml.Ledger.Api.V1.Value protoValue = source.ToProto(); var maybe = Value.FromProto(protoValue).AsEnum(); maybe.Should().BeOfType <Some <DamlEnum> >(); Assert.True(source == (Some <DamlEnum>)maybe); }
public void HashCodeHasValueSemantics() { // With identifier { var de1 = new DamlEnum(IdentifierFactory.Id1, "constructor1"); var de2 = new DamlEnum(IdentifierFactory.Id2, "constructor2"); var de3 = new DamlEnum(IdentifierFactory.Id1, "constructor1"); Assert.IsTrue(de1.GetHashCode() == de3.GetHashCode()); Assert.IsTrue(de1.GetHashCode() != de2.GetHashCode()); } // Without identifier { var de1 = new DamlEnum("constructor1"); var de2 = new DamlEnum("constructor2"); var de3 = new DamlEnum("constructor1"); Assert.IsTrue(de1.GetHashCode() == de3.GetHashCode()); Assert.IsTrue(de1.GetHashCode() != de2.GetHashCode()); } }