/// <summary> /// Setups mock to return model when dataset identifiers are given as input /// </summary> /// <param name="metadata"></param> /// <returns></returns> private static Mock <IMetadataService> SetupMetadataServiceMockToReturnModel(Metadata metadata) { var metadataServiceMock = new Mock <IMetadataService>(); foreach (var dataset in metadata.dataset) { metadataServiceMock.Setup(m => m.GetMetadataModel(OpenMetadataService.GetIdentifierFromUri(dataset.identifier))) .Returns(MetadataViewModel); } return(metadataServiceMock); }
public async Task ShouldUpdateMetadataWhenItAlreadyExistsInGeonorge() { var metadataFetcherMock = new Mock <IOpenMetadataFetcher>(); Metadata metadata = SetupMetadataFetcherMock(metadataFetcherMock, _endpoint); var metadataServiceMock = SetupMetadataServiceMockToReturnModel(metadata); var openMetadataService = new OpenMetadataService(metadataServiceMock.Object, metadataFetcherMock.Object); var numberOfUpdatedDatasets = await openMetadataService.SynchronizeMetadata(_endpoint); metadataServiceMock .Verify(m => m.CreateMetadata(It.IsAny <MetadataCreateViewModel>(), It.IsAny <string>()), Times.Exactly(0)); metadataServiceMock .Verify(m => m.SaveMetadataModel(It.IsAny <MetadataViewModel>(), It.IsAny <string>()), Times.Exactly(16)); numberOfUpdatedDatasets.Should().Be(16); }