You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by mg...@apache.org on 2022/04/20 19:57:18 UTC
[avro] branch master updated: AVRO-3497 Simplify conditional expression (#1658)
This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/master by this push:
new 9d87a206b AVRO-3497 Simplify conditional expression (#1658)
9d87a206b is described below
commit 9d87a206b52de7dc9402be711a51b72cb3c11160
Author: Kyle Schoonover <ky...@minmaxcorp.com>
AuthorDate: Wed Apr 20 12:57:04 2022 -0700
AVRO-3497 Simplify conditional expression (#1658)
* AVRO-3497 Simplify conditional expression
* Added null check back
* Updated tests
---
lang/csharp/src/apache/main/Generic/GenericEnum.cs | 12 ++--
.../src/apache/test/Generic/GenericEnumTests.cs | 72 ++++++++++++++++++++++
2 files changed, 80 insertions(+), 4 deletions(-)
diff --git a/lang/csharp/src/apache/main/Generic/GenericEnum.cs b/lang/csharp/src/apache/main/Generic/GenericEnum.cs
index db58bb1ec..27bba94ce 100644
--- a/lang/csharp/src/apache/main/Generic/GenericEnum.cs
+++ b/lang/csharp/src/apache/main/Generic/GenericEnum.cs
@@ -70,10 +70,14 @@ namespace Avro.Generic
/// <inheritdoc/>
public override bool Equals(object obj)
{
- if (obj == this) return true;
- return (obj != null && obj is GenericEnum)
- ? Value.Equals((obj as GenericEnum).Value, System.StringComparison.Ordinal)
- : false;
+ if (obj == this)
+ {
+ return true;
+ }
+
+ return obj != null
+ && obj.GetType() == typeof(GenericEnum)
+ && Value.Equals(((GenericEnum)obj).Value, System.StringComparison.Ordinal);
}
/// <inheritdoc/>
diff --git a/lang/csharp/src/apache/test/Generic/GenericEnumTests.cs b/lang/csharp/src/apache/test/Generic/GenericEnumTests.cs
new file mode 100644
index 000000000..aba0038ea
--- /dev/null
+++ b/lang/csharp/src/apache/test/Generic/GenericEnumTests.cs
@@ -0,0 +1,72 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using Avro.Generic;
+using NUnit.Framework;
+
+namespace Avro.test.Generic
+{
+ [TestFixture]
+ public class GenericEnumTests
+ {
+ private const string baseSchema = "{\"type\": \"enum\", \"name\": \"Test\", \"symbols\": " +
+ "[\"Unknown\", \"A\", \"B\"], \"default\": \"Unknown\" }";
+
+ [Test]
+ public void TestEquals()
+ {
+ GenericEnum genericEnum = GetBaseGenericEnum();
+ GenericEnum genericEnum2 = GetBaseGenericEnum();
+
+ Assert.IsTrue(genericEnum.Equals(genericEnum2));
+ }
+
+ [Test]
+ public void TestEqualsNotEqual()
+ {
+ GenericEnum genericEnum = GetBaseGenericEnum();
+ GenericEnum genericEnum2 = new GenericEnum(Schema.Parse(baseSchema) as EnumSchema, "B");
+
+ Assert.IsFalse(genericEnum.Equals(genericEnum2));
+ }
+
+ [Test]
+ public void TestEqualsObject()
+ {
+ GenericEnum genericEnum = GetBaseGenericEnum();
+ object genericEnum2 = genericEnum;
+
+ Assert.IsTrue(genericEnum.Equals(genericEnum2));
+ }
+
+ [Test]
+ public void TestEqualsObjectNullObject()
+ {
+ GenericEnum genericEnum = GetBaseGenericEnum();
+
+ Assert.IsFalse(genericEnum.Equals(null));
+ }
+
+ private GenericEnum GetBaseGenericEnum()
+ {
+ GenericEnum genericEnum = new GenericEnum(Schema.Parse(baseSchema) as EnumSchema, "A");
+
+ return genericEnum;
+ }
+ }
+}