public void RegisterServiceNewServiceNullNAMEPort() { var serviceRepoMock = new Mock <IRegisteredServiceRepository>(MockBehavior.Strict); var sessionManagerMock = new Mock <IServiceSessionManager>(MockBehavior.Strict); var loggerMock = new Mock <ILogger <RegisteredServicesManager> >(); var mapperMock = new Mock <IMapper>(); var serviceManager = new RegisteredServicesManager(loggerMock.Object, serviceRepoMock.Object, sessionManagerMock.Object, mapperMock.Object); var appName = "nPVR.DS.Rest.API"; var appVersion = "1.8.0"; var hostname = "ct-cloud-be1"; var NAMEEndpoint = "/nPVR.DS.Rest.API/manifest"; uint?NAMEPort = null; var NAMEVersion = "1.0.0"; string generatedServiceId = Generator.RegisteredServiceId(hostname, NAMEEndpoint, NAMEPort, appName, appVersion, NAMEVersion); Guid serviceSessionGuid = Guid.NewGuid(); serviceRepoMock .Setup(repo => repo.GetById(generatedServiceId)) .Returns <RegisteredService>(null) .Verifiable(); sessionManagerMock.Setup(manager => manager.CreateSession(It.IsAny <string>())) .Returns <string>(registeredServiceId => { return(new ServiceSessionDTO() { Id = serviceSessionGuid.ToString(), Bootstrapped = DateTime.UtcNow, RegisteredServiceId = registeredServiceId }); }) .Verifiable(); serviceRepoMock.Setup(repo => repo.Insert(It.Is <RegisteredService>(s => s.Id == generatedServiceId && s.AppName == appName && s.AppVersion == appVersion && s.Hostname == hostname && s.NAMEEndpoint == NAMEEndpoint && s.NAMEPort == NAMEPort && s.NAMEVersion == NAMEVersion && s.CurrentSessionId == serviceSessionGuid))).Verifiable(); mapperMock.Setup(m => m.Map <RegisteredService, RegisteredServiceDTO>(It.IsAny <RegisteredService>())) .Returns <RegisteredService>((s) => { return(new RegisteredServiceDTO() { Id = s.Id, }); }); var result = serviceManager.RegisterService(hostname, NAMEEndpoint, NAMEPort, appName, appVersion, NAMEVersion); Assert.Equal(generatedServiceId, result.Id); Assert.Equal(serviceSessionGuid.ToString(), result.CurrentSession.Id); }
public void GetAllWithLastPingFilter() { var serviceRepoMock = new Mock <IRegisteredServiceRepository>(MockBehavior.Strict); var sessionManagerMock = new Mock <IServiceSessionManager>(MockBehavior.Strict); var loggerMock = new Mock <ILogger <RegisteredServicesManager> >(); var mapperMock = new Mock <IMapper>(); var serviceManager = new RegisteredServicesManager(loggerMock.Object, serviceRepoMock.Object, sessionManagerMock.Object, mapperMock.Object); var appName = "nPVR.DS.Rest.API"; var appVersion = "1.8.0"; var hostname = "ct-cloud-be1"; var NAMEEndpoint = "/nPVR.DS.Rest.API/manifest"; uint?NAMEPort = null; var NAMEVersion = "1.0.0"; var currentSessionId = Guid.NewGuid(); string generatedServiceId = Generator.RegisteredServiceId(hostname, NAMEEndpoint, NAMEPort, appName, appVersion, NAMEVersion); string hostnameFilter = "ct-cloud"; string appNameFilter = "nPVR"; string appVersionFilter = "1."; DateTime lastPingFilter = DateTime.UtcNow; serviceRepoMock .Setup(repo => repo.GetAll(hostnameFilter, appNameFilter, appVersionFilter)) .Returns(new List <RegisteredService> { new RegisteredService() { Id = generatedServiceId, AppName = appName, AppVersion = appVersion, Hostname = hostname, NAMEEndpoint = NAMEEndpoint, NAMEPort = NAMEPort, NAMEVersion = NAMEVersion, CurrentSessionId = currentSessionId } }) .Verifiable(); var returnedSessionDto = new ServiceSessionDTO() { Id = currentSessionId.ToString(), Bootstrapped = DateTime.UtcNow, RegisteredServiceId = generatedServiceId.ToString(), LastPing = lastPingFilter.Subtract(TimeSpan.FromMinutes(1)) }; sessionManagerMock.Setup(manager => manager.GetById(currentSessionId)) .Returns(returnedSessionDto) .Verifiable(); mapperMock.Setup(m => m.Map <RegisteredService, RegisteredServiceDTO>(It.IsAny <RegisteredService>())) .Returns <RegisteredService>((s) => { return(new RegisteredServiceDTO() { Id = s.Id, CurrentSession = returnedSessionDto }); }); var result = serviceManager.GetAll(hostnameFilter, appNameFilter, appVersionFilter, lastPingFilter); serviceRepoMock.Verify(); sessionManagerMock.Verify(); Assert.Equal(0, result.Count()); }