public void AddOrUpdatePublishConfiguration_ConfigDoesNotYetExist_NewEntryIsPersisted() { // Arrange string configurationName = "Some Config Name"; string publishLocation = "http://nuget.org/api/v2"; string apiKey = Guid.NewGuid().ToString(); var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); var createdPublishConfiguration = new PublishConfiguration { Name = configurationName, PublishLocation = publishLocation, ApiKey = apiKey }; publishConfigurationFactory.Setup(p => p.GetPublishConfiguration(configurationName, publishLocation, apiKey)).Returns(createdPublishConfiguration); var existingConfigurations = new PublishConfiguration[] { }; publishConfigurationPersistence.Setup(p => p.Load(It.IsAny<string>())).Returns(existingConfigurations); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act configFilePublishConfigurationAccessor.AddOrUpdatePublishConfiguration(configurationName, publishLocation, apiKey); // Assert publishConfigurationPersistence.Verify( p => p.Save(It.Is<PublishConfiguration[]>(configs => configs.First().Equals(createdPublishConfiguration)), It.IsAny<string>()), Times.Once()); }
public void AddOrUpdatePublishConfiguration_ConfigurationNameParameterIsInvalid_ArgumentExceptionIsThrown(string configurationName) { // Arrange string publishLocation = "http://nuget.org/api/v2"; string apiKey = null; var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act configFilePublishConfigurationAccessor.AddOrUpdatePublishConfiguration(configurationName, publishLocation, apiKey); }
public void ResetPublishConfiguration_SaveSucceeds_SuccessResultIsReturned() { // Arrange var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); publishConfigurationPersistence.Setup(p => p.Save(It.IsAny<PublishConfiguration[]>(), It.IsAny<string>())).Returns(true); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act var result = configFilePublishConfigurationAccessor.ResetPublishConfiguration(); // Assert Assert.AreEqual(ServiceResultType.Success, result.Status); }
public void ResetPublishConfiguration_EmptyArrayIsSaved() { // Arrange var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); publishConfigurationPersistence.Setup(p => p.Save(It.IsAny<PublishConfiguration[]>(), It.IsAny<string>())).Returns(true); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act configFilePublishConfigurationAccessor.ResetPublishConfiguration(); // Assert publishConfigurationPersistence.Verify(p => p.Save(It.Is<PublishConfiguration[]>(configs => configs.Length == 0), It.IsAny<string>()), Times.Once()); }
public void GetPublishConfiguration_ConfigurationNameParameterIsValid_PublishConfigurationPersistenceReturnsNull_ResultIsNull() { // Arrange string configurationName = "Some non existing Configuration"; var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); PublishConfiguration[] persitedConfigurations = null; publishConfigurationPersistence.Setup(p => p.Load(It.IsAny<string>())).Returns(persitedConfigurations); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act var result = configFilePublishConfigurationAccessor.GetPublishConfiguration(configurationName); // Assert Assert.IsNull(result); }
public void GetPublishConfiguration_ConfigurationNameParameterIsValid_PublishConfigurationPersistenceReturnsNoMatchingEntries_ResultIsNull() { // Arrange string configurationName = "Some Other Name"; var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); var publishConfigurations = new[] { new PublishConfiguration { Name = "Some Name 1", PublishLocation = "http://some-nuget-server-1.com/api/v2" }, new PublishConfiguration { Name = "Some Name 2", PublishLocation = "http://some-nuget-server-2.com/api/v2" }, new PublishConfiguration { Name = "Some Name 3", PublishLocation = "http://some-nuget-server-3.com/api/v2" } }; publishConfigurationPersistence.Setup(p => p.Load(It.IsAny<string>())).Returns(publishConfigurations); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act var result = configFilePublishConfigurationAccessor.GetPublishConfiguration(configurationName); // Assert Assert.IsNull(result); }
public void GetPublishConfiguration_ConfigurationNameParameterIsInvalid_ArgumentExceptionIsThrown(string configurationName) { // Arrange var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act configFilePublishConfigurationAccessor.GetPublishConfiguration(configurationName); }
public void GetPublishConfigurations_PublishConfigurationPersistenceReturnsNull_ResultIsEmptyList() { // Arrange var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); PublishConfiguration[] persitedConfigurations = null; publishConfigurationPersistence.Setup(p => p.Load(It.IsAny<string>())).Returns(persitedConfigurations); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act var result = configFilePublishConfigurationAccessor.GetPublishConfigurations().ToList(); // Assert Assert.AreEqual(0, result.Count); }
public void GetPublishConfigurations_PublishConfigurationPersistenceContainsEntries_AllEntriesAreReturned() { // Arrange var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); var persitedConfigurations = new[] { new PublishConfiguration { Name = "Some Name 1", PublishLocation = "http://some-nuget-server-1.com/api/v2" }, new PublishConfiguration { Name = "Some Name 2", PublishLocation = "http://some-nuget-server-2.com/api/v2" }, new PublishConfiguration { Name = "Some Name 3", PublishLocation = "http://some-nuget-server-3.com/api/v2" } }; publishConfigurationPersistence.Setup(p => p.Load(It.IsAny<string>())).Returns(persitedConfigurations); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act var result = configFilePublishConfigurationAccessor.GetPublishConfigurations().ToList(); // Assert Assert.AreEqual(persitedConfigurations.Count(), result.Count); }
public void DeletePublishConfiguration_PublishConfigurationPersistenceReturnsNull_ResultIsFalse() { // Arrange string configurationName = "Some Configuration Name"; var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); PublishConfiguration[] persitedConfigurations = null; publishConfigurationPersistence.Setup(p => p.Load(It.IsAny<string>())).Returns(persitedConfigurations); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act var result = configFilePublishConfigurationAccessor.DeletePublishConfiguration(configurationName); // Assert Assert.AreEqual(ServiceResultType.Failure, result.Status); }
public void DeletePublishConfiguration_PublishConfigurationPersistenceReturnsAMatchingEntry_ReducedListIsPersisted(string configurationName) { // Arrange var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); var persitedConfigurations = new[] { new PublishConfiguration { Name = "Some Name 1", PublishLocation = "http://some-nuget-server-1.com/api/v2" }, new PublishConfiguration { Name = "Some Name 2", PublishLocation = "http://some-nuget-server-2.com/api/v2" }, new PublishConfiguration { Name = "Some Name 3", PublishLocation = "http://some-nuget-server-3.com/api/v2" } }; publishConfigurationPersistence.Setup(p => p.Load(It.IsAny<string>())).Returns(persitedConfigurations); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act configFilePublishConfigurationAccessor.DeletePublishConfiguration(configurationName); // Assert publishConfigurationPersistence.Verify( p => p.Save( It.Is<PublishConfiguration[]>( configs => configs.Length == persitedConfigurations.Length - 1 && configs.Any(c => c.Name.Equals(configurationName)) == false), It.IsAny<string>()), Times.Once()); }
public void DeletePublishConfiguration_PublishConfigurationPersistenceReturnsAMatchingEntry_PersistReturnsTrue_ResultIsTrue() { // Arrange string configurationName = "Some Name 1"; var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); var persitedConfigurations = new[] { new PublishConfiguration { Name = "Some Name 1", PublishLocation = "http://some-nuget-server-1.com/api/v2" }, new PublishConfiguration { Name = "Some Name 2", PublishLocation = "http://some-nuget-server-2.com/api/v2" }, new PublishConfiguration { Name = "Some Name 3", PublishLocation = "http://some-nuget-server-3.com/api/v2" } }; publishConfigurationPersistence.Setup(p => p.Load(It.IsAny<string>())).Returns(persitedConfigurations); publishConfigurationPersistence.Setup(p => p.Save(It.IsAny<PublishConfiguration[]>(), It.IsAny<string>())).Returns(true); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act var result = configFilePublishConfigurationAccessor.DeletePublishConfiguration(configurationName); // Assert Assert.AreEqual(ServiceResultType.Success, result.Status); }
public void Constructor_AllParametersAreSet_ObjectIsInstantiated() { // Arrange var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); // Act var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Assert Assert.IsNotNull(configFilePublishConfigurationAccessor); }
public void AddOrUpdatePublishConfiguration_PublishConfigurationFactoryReturnsNull_ResultIsFalse() { // Arrange string configurationName = "Some Config Name"; string publishLocation = "http://nuget.org/api/v2"; string apiKey = Guid.NewGuid().ToString(); var applicationInformation = new ApplicationInformation { ConfigurationFileFolder = Environment.CurrentDirectory }; var publishConfigurationFactory = new Mock<IPublishConfigurationFactory>(); var publishConfigurationPersistence = new Mock<IFilesystemPersistence<PublishConfiguration[]>>(); PublishConfiguration createdPublishConfiguration = null; publishConfigurationFactory.Setup(p => p.GetPublishConfiguration(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).Returns(createdPublishConfiguration); var configFilePublishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor( applicationInformation, publishConfigurationFactory.Object, publishConfigurationPersistence.Object); // Act var result = configFilePublishConfigurationAccessor.AddOrUpdatePublishConfiguration(configurationName, publishLocation, apiKey); // Assert Assert.AreEqual(ServiceResultType.Failure, result.Status); }