public void RefreshUpdatesLightLevelTest() { // Arrange var mapCellsFactory = new Func <IAreaMapCellInternal>(() => new Mock <IAreaMapCellInternal>().Object); var mapLightLevelProcessorMock = new Mock <IMapLightLevelProcessor>(); var map = new AreaMap(1, mapCellsFactory, 30, 30, mapLightLevelProcessorMock.Object); // Act map.Refresh(); // Assert Assert.AreEqual( mapLightLevelProcessorMock.Invocations.Select(invocation => invocation.Method.Name), new[] { nameof(IMapLightLevelProcessor.ResetLightLevel), nameof(IMapLightLevelProcessor.UpdateLightLevel) }); // Checks call order mapLightLevelProcessorMock.Verify(processor => processor.ResetLightLevel(map), Times.Once); mapLightLevelProcessorMock.Verify(processor => processor.UpdateLightLevel(map), Times.Once); mapLightLevelProcessorMock.VerifyNoOtherCalls(); }