public void ToString_ArrayNotNull_ShouldFormatValues()
        {
            const int number   = 1;
            var       roles    = new[] { "tester", "developer" };
            var       instance = new Generated.EmployeeRoles(number, roles);

            var actual = instance.ToString();

            // TODO: update generator to pretty-print array values
            Assert.That(actual, Is.EqualTo("1 [tester developer]"));
        }
        public void Instance_WhenSerializedWithBinaryFormatter_ShouldBeSerializable()
        {
            const int number = 1;
            var       roles  = new[] { "tester", "developer" };
            var       actual = new Generated.EmployeeRoles(number, roles);

            var deserialized = SerializationTesting.SerializeDeserializeWithBinaryFormatter(actual);

            Assert.That(deserialized, Is.EqualTo(actual));
            Assert.That(actual.EmployeeNumber, Is.EqualTo(number));
            Assert.That(actual.Roles, Is.EquivalentTo(roles));
        }
        public void EqualsGetHashCodeAndEqualityOperators_TypeWithStringReferenceTypeArray_ShouldWork()
        {
            const int number = 1;
            var       roles  = new[] { "tester", "developer" };

            var a = new Generated.EmployeeRoles(number, roles);
            var b = new Generated.EmployeeRoles(number, new[] { "tester", "developer" });
            var c = new Generated.EmployeeRoles(number, roles);

            var otherEmployeeNumber = new Generated.EmployeeRoles(number + 1, roles);
            var otherRolesLength    = new Generated.EmployeeRoles(number, new[] { "tester" });
            var otherRolesValues    = new Generated.EmployeeRoles(number, new[] { "tester", "analyst" });

            EqualityTesting.TestEqualsAndGetHashCode(a, b, c, otherEmployeeNumber, otherRolesLength, otherRolesValues);
            EqualityTesting.TestEqualityOperators(a, b, c, otherEmployeeNumber, otherRolesLength, otherRolesValues);
        }