Acr.Geofencing.Generic.Tests.Tests.Test C# (CSharp) Метод

Test() приватный Метод

private Test ( ) : System.Threading.Tasks.Task
Результат System.Threading.Tasks.Task
        public async Task Test()
        {
            var tcs = new TaskCompletionSource<GeofenceStatusChangedEventArgs>();

            var geofence = new GeofenceRegion
            {
                Identifier = "Test",
                Center = new Position(1.111, 1.111),
                Radius = Distance.FromKilometers(1)
            };
            var locator = new Mock<IGeolocator>();
            locator
                .Setup(x => x.StartListeningAsync(It.IsAny<int>(), It.IsAny<double>(), false))
                .Returns(() => Task.FromResult(true));

            var mgr = new GeofenceManagerImpl(locator.Object, new GeofenceSettings
            {
                MonitoredRegions = new List<GeofenceRegion>(new [] { geofence })
            });
            mgr.RegionStatusChanged += (sender, args) => tcs.SetResult(args);

            // first raise establishes current status, must do twice
            locator.Raise(
                x => x.PositionChanged += null,
                new PositionEventArgs(new Plugin.Geolocator.Abstractions.Position
                {
                    Latitude = geofence.Center.Latitude,
                    Longitude = geofence.Center.Longitude
                })
            );

            var result = await tcs.Task;

            result.Status.Should().Be(GeofenceStatus.Exited);
            result.Region.Identifier.Should().Be(geofence.Identifier);
        }
    }
Tests