@@ -7,7 +7,7 @@ namespace ZeidLab.ToolBox.Test.Units.Options;
77
88public sealed class MaybeExtensionsTapTests
99{
10- #region TapIfSome
10+ #region TapIfSome<TIn>(this Maybe<TIn> self, Action<TIn> action)
1111
1212 [ Fact ]
1313 public void TapIfSome_Some_ActionIsExecuted ( )
@@ -39,10 +39,51 @@ public void TapIfSome_None_ActionIsNotExecuted()
3939 result . Should ( ) . Be ( maybe ) ;
4040 }
4141
42+ #endregion
43+
44+ #region TapIfSomeAsync<TIn>(this Maybe<TIn> self, Func<TIn,Task> action)
45+
46+ [ Fact ]
47+ public async Task TapIfSomeAsync_InstanceSome_ActionIsExecuted ( )
48+ {
49+ // Arrange
50+ var maybe = Maybe . Some ( 10 ) ;
51+ var actionExecuted = false ;
52+
53+ // Act
54+ var result = await maybe . TapIfSomeAsync ( async value =>
55+ {
56+ await Task . Delay ( 1 ) ;
57+ actionExecuted = true ;
58+ } ) ;
59+
60+ // Assert
61+ actionExecuted . Should ( ) . BeTrue ( ) ;
62+ result . Should ( ) . Be ( maybe ) ;
63+ }
64+
65+ [ Fact ]
66+ public async Task TapIfSomeAsync_InstanceNone_ActionIsNotExecuted ( )
67+ {
68+ // Arrange
69+ var maybe = Maybe . None < int > ( ) ;
70+ var actionExecuted = false ;
71+
72+ // Act
73+ var result = await maybe . TapIfSomeAsync ( async value =>
74+ {
75+ await Task . Delay ( 1 ) ;
76+ actionExecuted = true ;
77+ } ) ;
78+
79+ // Assert
80+ actionExecuted . Should ( ) . BeFalse ( ) ;
81+ result . Should ( ) . Be ( maybe ) ;
82+ }
4283
4384 #endregion
4485
45- #region TapIfNone
86+ #region TapIfNone<TIn>(this Maybe<TIn> self, Action action)
4687
4788 [ Fact ]
4889 public void TapIfNone_None_ActionIsExecuted ( )
@@ -74,11 +115,51 @@ public void TapIfNone_Some_ActionIsNotExecuted()
74115 result . Should ( ) . Be ( maybe ) ;
75116 }
76117
118+ #endregion
119+
120+ #region TapIfNoneAsync<TIn>(this Maybe<TIn> self, Func<Task> action)
121+
122+ [ Fact ]
123+ public async Task TapIfNoneAsync_InstanceNone_ActionIsExecuted ( )
124+ {
125+ // Arrange
126+ var maybe = Maybe . None < int > ( ) ;
127+ var actionExecuted = false ;
128+
129+ // Act
130+ var result = await maybe . TapIfNoneAsync ( async ( ) =>
131+ {
132+ await Task . Delay ( 1 ) ;
133+ actionExecuted = true ;
134+ } ) ;
135+
136+ // Assert
137+ actionExecuted . Should ( ) . BeTrue ( ) ;
138+ result . Should ( ) . Be ( maybe ) ;
139+ }
140+
141+ [ Fact ]
142+ public async Task TapIfNoneAsync_InstanceSome_ActionIsNotExecuted ( )
143+ {
144+ // Arrange
145+ var maybe = Maybe . Some ( 10 ) ;
146+ var actionExecuted = false ;
147+
148+ // Act
149+ var result = await maybe . TapIfNoneAsync ( async ( ) =>
150+ {
151+ await Task . Delay ( 1 ) ;
152+ actionExecuted = true ;
153+ } ) ;
77154
155+ // Assert
156+ actionExecuted . Should ( ) . BeFalse ( ) ;
157+ result . Should ( ) . Be ( maybe ) ;
158+ }
78159
79160 #endregion
80161
81- #region TapIfSomeAsync
162+ #region TapIfSomeAsync<TIn>(this Task<Maybe<TIn>> self, Func<TIn, Task> action)
82163
83164 [ Fact ]
84165 public async Task TapIfSomeAsync_Some_ActionIsExecuted ( )
@@ -110,10 +191,9 @@ public async Task TapIfSomeAsync_None_ActionIsNotExecuted()
110191 result . Should ( ) . Be ( await maybeTask ) ;
111192 }
112193
113-
114194 #endregion
115195
116- #region TapIfNoneAsync
196+ #region TapIfNoneAsync<TIn>(this Task<Maybe<TIn>> self, Func<Task> action)
117197
118198 [ Fact ]
119199 public async Task TapIfNoneAsync_None_ActionIsExecuted ( )
@@ -145,7 +225,5 @@ public async Task TapIfNoneAsync_Some_ActionIsNotExecuted()
145225 result . Should ( ) . Be ( await maybeTask ) ;
146226 }
147227
148-
149228 #endregion
150-
151229}
0 commit comments