public void FetchLastDiagnostics_Test()
        {
            //Arrange
            var diagnosticsContextFactory = new Mock<IPrompterDiagnosticsDbContextFactory>();
            var diagnosticsContext = new Mock<IPrompterDiagnosticsDbContext>();
            var diagnosticsDbSet = new Mock<IDbSet<Diagnostics>>();

            var diagnostics = new List<Diagnostics>
            {
                new Diagnostics
                {
                    DiagnosticsId = 1,
                    Date = DateTime.Now
                },
                new Diagnostics
                {
                    DiagnosticsId = 2,
                    Date = DateTime.Now
                }
            }.AsQueryable();

            diagnosticsContextFactory.Setup(t => t.Create())
                .Returns(diagnosticsContext.Object);

            diagnosticsDbSet.Setup(t => t.Provider)
                .Returns(diagnostics.Provider);
            diagnosticsDbSet.Setup(t => t.Expression)
                .Returns(diagnostics.Expression);
            diagnosticsDbSet.Setup(t => t.GetEnumerator())
                .Returns(diagnostics.GetEnumerator());

            diagnosticsContext.Setup(t => t.Diagnostics)
                .Returns(diagnosticsDbSet.Object);
            
            var diagnosticsService = new DiagnosticsService(diagnosticsContextFactory.Object);
            
            //Act
            var actual = diagnosticsService.FetchLastDiagnostics();

            //Assert
            Assert.That(actual, Is.Not.Null);
            Assert.That(actual.Count, Is.EqualTo(2));
            diagnosticsContext.Verify(t => t.Diagnostics, Times.Once());
        }
        public async void SaveDiagnosticAsync_Test()
        {
            //Arrange
            var diagnosticContextFactory = new Mock<IPrompterDiagnosticsDbContextFactory>();
            var diagnosticContext = new Mock<IPrompterDiagnosticsDbContext>();

            diagnosticContext.Setup(t => t.Diagnostics.Add(It.IsAny<Diagnostics>()));

            diagnosticContextFactory.Setup(t => t.Create())
                .Returns(diagnosticContext.Object);
            
            var diagnosticsService = new DiagnosticsService(diagnosticContextFactory.Object);

            //Act
            await diagnosticsService.SaveDiagnosticAsync(new Diagnostics());

            //Assert

            diagnosticContextFactory.Verify(t => t.Create(), Times.Once);
            diagnosticContext.Verify(t => t.SaveChangesAsync(), Times.Once);
            Assert.Throws<ArgumentNullException>(
                async () => await diagnosticsService.SaveDiagnosticAsync(null));

        }