diff --git a/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs b/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
index 0f3a82c605fc33bf21fc99d28e29941c06995391..fc9d5599f21efa39f19ebb5ee077521569856b96 100644
--- a/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
+++ b/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
@@ -18,6 +18,7 @@
 
 using System;
 using System.Linq;
+using System.Threading;
 using Grpc.Core;
 using NUnit.Framework;
 
@@ -75,5 +76,19 @@ namespace Grpc.Core.Tests
             var parts = coreVersion.Split('.');
             Assert.AreEqual(3, parts.Length);
         }
+
+        [Test]
+        public void ShuttingDownEventIsFired()
+        {
+            var cts = new CancellationTokenSource();
+            var handler = new EventHandler((sender, args) => { cts.Cancel(); });
+            
+            GrpcEnvironment.ShuttingDown += handler;
+            var env = GrpcEnvironment.AddRef();
+            GrpcEnvironment.ReleaseAsync().Wait();
+            GrpcEnvironment.ShuttingDown -= handler;
+            
+            Assert.IsTrue(cts.Token.IsCancellationRequested);
+        }
     }
 }