File tree Expand file tree Collapse file tree
OpenFga.Sdk.Test/Models/Client Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ using OpenFga . Sdk . Client . Model ;
2+ using System . Collections . Generic ;
3+ using Xunit ;
4+
5+ namespace OpenFga . Sdk . Test . Models . Client ;
6+
7+ public class ClientCheckRequestTests {
8+ [ Fact ]
9+ public void Equals_ReturnsTrue_WhenContextualTuplesHaveEqualValues ( ) {
10+ var request1 = CreateRequest ( "document:budget" ) ;
11+ var request2 = CreateRequest ( "document:budget" ) ;
12+
13+ Assert . True ( request1 . Equals ( request2 ) ) ;
14+ }
15+
16+ [ Fact ]
17+ public void Equals_ReturnsFalse_WhenContextualTuplesHaveDifferentValues ( ) {
18+ var request1 = CreateRequest ( "document:budget" ) ;
19+ var request2 = CreateRequest ( "document:forecast" ) ;
20+
21+ Assert . False ( request1 . Equals ( request2 ) ) ;
22+ }
23+
24+ [ Fact ]
25+ public void GetHashCode_ReturnsSameValue_WhenContextualTuplesHaveEqualValues ( ) {
26+ var request1 = CreateRequest ( "document:budget" ) ;
27+ var request2 = CreateRequest ( "document:budget" ) ;
28+
29+ Assert . Equal ( request1 . GetHashCode ( ) , request2 . GetHashCode ( ) ) ;
30+ }
31+
32+ private static ClientCheckRequest CreateRequest ( string contextualObject ) => new ( ) {
33+ User = "user:anne" ,
34+ Relation = "viewer" ,
35+ Object = "document:roadmap" ,
36+ ContextualTuples = new List < ClientTupleKey > {
37+ new ( ) {
38+ User = "user:anne" ,
39+ Relation = "editor" ,
40+ Object = contextualObject ,
41+ } ,
42+ } ,
43+ } ;
44+ }
Original file line number Diff line number Diff line change 11using System ;
22using System . Collections . Generic ;
33using System . ComponentModel . DataAnnotations ;
4+ using System . Linq ;
45using System . Runtime . Serialization ;
56using System . Text . Json ;
67using System . Text . Json . Serialization ;
@@ -75,7 +76,8 @@ public bool Equals(ClientCheckRequest input) {
7576 (
7677 ContextualTuples == input . ContextualTuples ||
7778 ( ContextualTuples != null &&
78- ContextualTuples . Equals ( input . ContextualTuples ) )
79+ input . ContextualTuples != null &&
80+ ContextualTuples . SequenceEqual ( input . ContextualTuples ) )
7981 ) &&
8082 (
8183 this . Context == input . Context ||
@@ -112,7 +114,10 @@ public override int GetHashCode() {
112114 }
113115
114116 if ( ContextualTuples != null ) {
115- hashCode = ( hashCode * 9923 ) + ContextualTuples . GetHashCode ( ) ;
117+ hashCode = ( hashCode * 9923 ) + ContextualTuples . Count ;
118+ foreach ( var contextualTuple in ContextualTuples ) {
119+ hashCode = ( hashCode * 9923 ) + ( contextualTuple ? . GetHashCode ( ) ?? 0 ) ;
120+ }
116121 }
117122
118123 if ( Context != null ) {
You can’t perform that action at this time.
0 commit comments