Ejemplo n.º 1
0
        public async Task PersistedTheSpecifiedSnapshot()
        {
            (var persistenceProvider, var subject) = CreateSubject();

            var snapshot = new Examiner.Service.State.Snapshot {
                LastTrainingDataUpdate = DateTimeOffset.Parse("2020-05-21T10:15:00")
            };

            await subject.SetStateSnapshotAsync(snapshot, CancellationToken.None);

            A.CallTo(() => persistenceProvider.SetBlobContentAsync(ConnectionString, ContainerName, A <string> .Ignored, A <Func <Stream, Task> > .Ignored, A <CancellationToken> .Ignored));
        }
Ejemplo n.º 2
0
        public async Task GetBalancedFaceDataWhenProcessing()
        {
            (var faceDataProvider, var recognitionEngine, var modelPersistor, var subject) = CreateSubject();

            var snapshot = new Examiner.Service.State.Snapshot {
                LastTrainingDataUpdate = new DateTimeOffset(2020, 02, 17, 0, 0, 0, TimeSpan.Zero)
            };

            var result = await subject.ProcessAsync(snapshot, CancellationToken.None);

            A.CallTo(() => faceDataProvider.GetBalancedItems(A <CancellationToken> .Ignored)).MustHaveHappenedOnceExactly();
        }
Ejemplo n.º 3
0
        public async Task NotRequireProcessingIfSnapshotLastUpdateIsEqualToLatestFaceData()
        {
            (var faceDataProvider, var recognitionEngine, var modelPersistor, var subject) = CreateSubject();

            A.CallTo(() => faceDataProvider.GetDateOfLastChangeAsync(A <CancellationToken> .Ignored)).Returns(new DateTimeOffset(2020, 02, 17, 0, 0, 0, TimeSpan.Zero));

            var snapshot = new Examiner.Service.State.Snapshot {
                LastTrainingDataUpdate = new DateTimeOffset(2020, 02, 17, 0, 0, 0, TimeSpan.Zero)
            };

            var result = await subject.RequiresProcessingAsync(snapshot, CancellationToken.None);

            Assert.That(result, Is.False);
        }
Ejemplo n.º 4
0
        public async Task PersistRecognitionModelWhenProcessing()
        {
            (var faceDataProvider, var recognitionEngine, var modelPersistor, var subject) = CreateSubject();

            var snapshot = new Examiner.Service.State.Snapshot {
                LastTrainingDataUpdate = new DateTimeOffset(2020, 02, 17, 0, 0, 0, TimeSpan.Zero)
            };
            var model = A.Fake <Examiner.Face.Recognition.IModel>();

            A.CallTo(() => recognitionEngine.TrainAsync(A <IAsyncEnumerable <Examiner.Face.Data.Item> > .Ignored, A <CancellationToken> .Ignored)).Returns(Task.FromResult(model));

            var result = await subject.ProcessAsync(snapshot, CancellationToken.None);

            A.CallTo(() => modelPersistor.SaveModelAsync(model, A <CancellationToken> .Ignored)).MustHaveHappenedOnceExactly();
        }