4
4
import java .net .UnknownHostException ;
5
5
import org .dcache .nfs .ChimeraNFSException ;
6
6
import org .dcache .nfs .v4 .xdr .COMPOUND4args ;
7
+ import org .dcache .nfs .v4 .xdr .nfs4_prot ;
7
8
import org .dcache .nfs .v4 .xdr .nfs_fh4 ;
8
9
import org .dcache .nfs .vfs .Inode ;
9
10
import org .junit .Test ;
@@ -51,6 +52,15 @@ public void testLeaseUpdateForV40Client() throws UnknownHostException, ChimeraNF
51
52
52
53
stateid4 stateid = mock (stateid4 .class );
53
54
NFSv4StateHandler stateHandler = mock (NFSv4StateHandler .class );
55
+ NFS4Client client = mock (NFS4Client .class );
56
+ NFSv41Session session = mock (NFSv41Session .class );
57
+ FileTracker fileTracker = mock (FileTracker .class );
58
+
59
+ when (stateHandler .getFileTracker ()).thenReturn (fileTracker );
60
+ when (fileTracker .getShareAccess (any (), any (), any ())).thenReturn (nfs4_prot .OPEN4_SHARE_ACCESS_WRITE );
61
+ when (stateHandler .getClientIdByStateId (any ())).thenReturn (client );
62
+ when (session .getClient ()).thenReturn (client );
63
+ when (stateHandler .getClientIdByStateId (any ())).thenReturn (client );
54
64
55
65
when (vfs .getattr (any ())).thenReturn (fileStat );
56
66
when (vfs .write (any (), any (), anyLong (), any ()))
@@ -68,6 +78,7 @@ public void testLeaseUpdateForV40Client() throws UnknownHostException, ChimeraNF
68
78
.withCall (generateRpcCall ())
69
79
.build ();
70
80
81
+ context .setSession (session );
71
82
execute (context , writeArgs );
72
83
verify (stateHandler , times (1 )).updateClientLeaseTime (stateid );
73
84
}
@@ -77,6 +88,15 @@ public void testNoLeaseUpdateForV41Client() throws UnknownHostException, Chimera
77
88
78
89
stateid4 stateid = mock (stateid4 .class );
79
90
NFSv4StateHandler stateHandler = mock (NFSv4StateHandler .class );
91
+ NFS4Client client = mock (NFS4Client .class );
92
+ NFSv41Session session = mock (NFSv41Session .class );
93
+ FileTracker fileTracker = mock (FileTracker .class );
94
+
95
+ when (stateHandler .getFileTracker ()).thenReturn (fileTracker );
96
+ when (fileTracker .getShareAccess (any (), any (), any ())).thenReturn (nfs4_prot .OPEN4_SHARE_ACCESS_WRITE );
97
+ when (stateHandler .getClientIdByStateId (any ())).thenReturn (client );
98
+ when (session .getClient ()).thenReturn (client );
99
+ when (stateHandler .getClientIdByStateId (any ())).thenReturn (client );
80
100
81
101
when (vfs .getattr (any ())).thenReturn (fileStat );
82
102
when (vfs .write (any (), any (), anyLong (), any ()))
@@ -94,6 +114,7 @@ public void testNoLeaseUpdateForV41Client() throws UnknownHostException, Chimera
94
114
.withCall (generateRpcCall ())
95
115
.build ();
96
116
117
+ context .setSession (session );
97
118
execute (context , writeArgs );
98
119
verify (stateHandler , never ()).updateClientLeaseTime (stateid );
99
120
}
@@ -103,6 +124,16 @@ public void testReturnWriteVerifier() throws UnknownHostException, ChimeraNFSExc
103
124
104
125
stateid4 stateid = mock (stateid4 .class );
105
126
NFSv4StateHandler stateHandler = mock (NFSv4StateHandler .class );
127
+ NFS4Client client = mock (NFS4Client .class );
128
+ NFSv41Session session = mock (NFSv41Session .class );
129
+ FileTracker fileTracker = mock (FileTracker .class );
130
+
131
+ when (stateHandler .getFileTracker ()).thenReturn (fileTracker );
132
+ when (fileTracker .getShareAccess (any (), any (), any ())).thenReturn (nfs4_prot .OPEN4_SHARE_ACCESS_WRITE );
133
+ when (stateHandler .getClientIdByStateId (any ())).thenReturn (client );
134
+ when (session .getClient ()).thenReturn (client );
135
+ when (stateHandler .getClientIdByStateId (any ())).thenReturn (client );
136
+
106
137
verifier4 verifier = mock (verifier4 .class );
107
138
108
139
when (vfs .getattr (any ())).thenReturn (fileStat );
@@ -121,6 +152,7 @@ public void testReturnWriteVerifier() throws UnknownHostException, ChimeraNFSExc
121
152
.withRebootVerifier (verifier )
122
153
.withCall (generateRpcCall ())
123
154
.build ();
155
+ context .setSession (session );
124
156
125
157
COMPOUND4res res = execute (context , writeArgs );
126
158
assertSame (verifier , res .resarray .get (1 ).opwrite .resok4 .writeverf );
0 commit comments