public void SirenField_Equality_DifferentName_ShouldNotBeEqual()
        {
            ISirenField field = TestHelpers.GetField();
            ISirenField other = TestHelpers.GetField("other-name");

            TestHelpers.BidirectionalEquality(field, other, false);
        }
Exemple #2
0
        public override bool Equals(object obj)
        {
            ISirenField field = obj as ISirenField;
            ISirenField @this = this;

            return(field != null && @this.Equals(field));
        }
        public void SirenField_Equality_SameField_ShouldBeEqual()
        {
            ISirenField field = TestHelpers.GetField();
            ISirenField other = TestHelpers.GetField();

            TestHelpers.BidirectionalEquality(field, other, true);
        }
Exemple #4
0
 public static bool Matches(ISirenField expected, ISirenField actual, out string message)
 {
     return(Matches(expected.Name, actual.Name, out message) &&
            Matches(expected.Type, actual.Type, out message) &&
            Matches(expected.Title, actual.Title, out message) &&
            Matches(expected.Class, actual.Class, out message) &&
            Matches(expected.Value, actual.Value, out message));
 }
        public void SirenField_Equality_MissingAttributes_ShouldNotBeEqual()
        {
            ISirenField field = TestHelpers.GetField();
            ISirenField other = new SirenField(
                name: "foo"
                );

            TestHelpers.BidirectionalEquality(field, other, false);
        }
Exemple #6
0
        int IComparable <ISirenField> .CompareTo(ISirenField other)
        {
            if (other == null)
            {
                return(1);
            }

            return(string.CompareOrdinal(m_name, other.Name));
        }
 public static bool TryGetFieldByClass(
     this ISirenAction @this,
     string @class,
     out ISirenField field
     )
 {
     field = @this.FieldsByClass(@class).FirstOrDefault();
     return(field != default(ISirenField));
 }
 public static bool TryGetFieldByType(
     this ISirenAction @this,
     string type,
     out ISirenField field
     )
 {
     field = @this.FieldsByType(type).FirstOrDefault();
     return(field != default(ISirenField));
 }
 public static bool TryGetFieldByName(
     this ISirenAction @this,
     string name,
     out ISirenField field
     )
 {
     field = @this.Fields.FirstOrDefault(f => f.Name.Equals(name));
     return(field != default(ISirenField));
 }
        public void SirenField_DeserializesCorrectly()
        {
            ISirenField sirenField = TestHelpers.GetField();

            string      serialized = JsonConvert.SerializeObject(sirenField);
            ISirenField field      = JsonConvert.DeserializeObject <SirenField>(serialized);

            Assert.AreEqual("foo", field.Name);
            Assert.Contains("bar", field.Class);
            Assert.AreEqual("number", field.Type);
            Assert.AreEqual(1, int.Parse(field.Value.ToString()));
            Assert.AreEqual("Some field", field.Title);
        }
        public void SirenField_Serialized_DoesNotIncludeOptionalParametersIfNull()
        {
            ISirenField sirenField = new SirenField(name: "foo");

            string      serialized = JsonConvert.SerializeObject(sirenField);
            ISirenField field      = JsonConvert.DeserializeObject <SirenField>(serialized);

            Assert.AreEqual("foo", field.Name);
            Assert.IsEmpty(field.Class);
            Assert.IsNull(field.Type);
            Assert.IsNull(field.Value);
            Assert.IsNull(field.Title);
        }
Exemple #12
0
        public void MatchingHelpers_MatchesSirenFieldArraysCorrectly()
        {
            string      message;
            ISirenField field = TestHelpers.GetField();

            IEnumerable <ISirenField> expected = null;
            IEnumerable <ISirenField> actual   = null;

            Assert.IsTrue(SirenMatchers.Matches(expected, actual, out message));

            actual = new[] { field };
            Assert.IsTrue(SirenMatchers.Matches(expected, actual, out message));

            expected = new[] { new SirenField(
                                   name: null
                                   ) };
            actual = new[] { field };
            Assert.IsTrue(SirenMatchers.Matches(expected, actual, out message));

            expected = new[] { new SirenField(
                                   name: field.Name
                                   ) };
            actual = new[] { field };
            Assert.IsTrue(SirenMatchers.Matches(expected, actual, out message));

            expected = new[] { new SirenField(
                                   name: field.Name,
                                   @class: field.Class,
                                   type: field.Type,
                                   value: field.Value,
                                   title: field.Title,
                                   min: field.Min,
                                   max: field.Max
                                   ) };
            actual = new[] { field };
            Assert.IsTrue(SirenMatchers.Matches(expected, actual, out message));

            expected = new[] { new SirenField(
                                   name: field.Name,
                                   @class: field.Class,
                                   type: field.Type,
                                   value: "foo",
                                   title: field.Title,
                                   min: field.Min,
                                   max: field.Max
                                   ) };
            actual = new[] { field };
            Assert.IsFalse(SirenMatchers.Matches(expected, actual, out message));
            Assert.AreEqual(message, "Expected foo, but was 1");
        }
        bool IEquatable <ISirenField> .Equals(ISirenField other)
        {
            if (other == null)
            {
                return(false);
            }

            bool name   = m_name == other.Name;
            bool @class = m_class.OrderBy(x => x).SequenceEqual(other.Class.OrderBy(x => x));
            bool type   = m_type == other.Type;
            bool value  = m_value == other.Value || m_value != null && m_value.Equals(other.Value);
            bool title  = m_title == other.Title;

            return(name && @class && type && value && title);
        }
        public void SirenField_DeserializesCorrectly()
        {
            ISirenField sirenField = new SirenField(
                name: "foo",
                @class: new[] { "bar" },
                type: "number",
                value: 1,
                title: "Some field");

            string      serialized = JsonConvert.SerializeObject(sirenField);
            ISirenField field      = JsonConvert.DeserializeObject <SirenField>(serialized);

            Assert.AreEqual("foo", field.Name);
            Assert.Contains("bar", field.Class);
            Assert.AreEqual("number", field.Type);
            Assert.AreEqual(1, int.Parse(field.Value.ToString()));
            Assert.AreEqual("Some field", field.Title);
        }
Exemple #15
0
 public void SirenField_GetHashcodeNot0(ISirenField field)
 {
     Assert.AreNotEqual(0, field.GetHashCode());
 }
Exemple #16
0
 public void SirenField_GetHashCode_NotEqual(ISirenField field1, ISirenField field2)
 {
     Assert.AreNotEqual(field1.GetHashCode(), field2.GetHashCode());
 }
Exemple #17
0
        int IComparable.CompareTo(object obj)
        {
            ISirenField @this = this;

            return(@this.CompareTo((ISirenField)obj));
        }