Skip to content

Commit d00e616

Browse files
committed
made MockEngine imlpement IBuildEngine4
1 parent 8923b87 commit d00e616

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/GitVersionTask.Tests/Mocks/MockEngine.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections;
3+
using System.Collections.Concurrent;
34
using System.Collections.Generic;
45
using System.Text;
56
using GitVersionTask.Tests.Helpers;
@@ -8,8 +9,9 @@
89

910
namespace GitVersionTask.Tests
1011
{
11-
internal sealed class MockEngine : IBuildEngine3
12+
internal sealed class MockEngine : IBuildEngine4
1213
{
14+
private readonly ConcurrentDictionary<object, object> _objectCache = new ConcurrentDictionary<object, object>();
1315
private StringBuilder _log = new StringBuilder();
1416

1517
internal MessageImportance MinimumMessageImportance { get; set; } = MessageImportance.Low;
@@ -109,5 +111,22 @@ public void Yield()
109111
public void Reacquire()
110112
{
111113
}
114+
115+
public object GetRegisteredTaskObject(object key, RegisteredTaskObjectLifetime lifetime)
116+
{
117+
_objectCache.TryGetValue(key, out var obj);
118+
return obj;
119+
}
120+
121+
public void RegisterTaskObject(object key, object obj, RegisteredTaskObjectLifetime lifetime, bool allowEarlyCollection)
122+
{
123+
_objectCache[key] = obj;
124+
}
125+
126+
public object UnregisterTaskObject(object key, RegisteredTaskObjectLifetime lifetime)
127+
{
128+
_objectCache.TryRemove(key, out var obj);
129+
return obj;
130+
}
112131
}
113132
}

0 commit comments

Comments
 (0)