public void Uploader_should_throw_meaningful_exception_if_cannot_find_project_group_reference()
        {
            var octopusRepository = new FakeOctopusRepository();
            var uploader          = new ModelUploader(octopusRepository);

            var model = CreateProjectModel("lifecycle", "group");

            octopusRepository.Lifecycles.Create(new LifecycleResource {
                Name = "lifecycle"
            });

            var ex = Assert.Throws <KeyNotFoundException>(() => uploader.UploadModel(model));

            Assert.That(ex.Message, Is.EqualTo("ProjectGroupResource with name 'group' not found."));
        }
        public void SetUp()
        {
            _repository = new FakeOctopusRepository();
            _downloader = new Downloader(_repository);
            _uploader   = new Uploader(_repository);

            _model = new SystemModel(new[]
            {
                new Role("api", new List <string> {
                    "dev1", "dev2"
                }),
                new Role("csapi", new List <string> {
                    "dev1", "dev2"
                }),
                new Role("service", new List <string> {
                    "dev3"
                })
            }, new Tenant[]
            {
            }, new TenantTag[]
            {
            });

            foreach (var role in _model.Roles)
            {
                _repository.FakeMachineRoles.Add(role.Name);
            }

            foreach (var machineName in _model.Roles.SelectMany(x => x.Machines)
                     .Concat(_model.Tenants.SelectMany(x => x.Machines))
                     .Concat(_model.TenantTags.SelectMany(x => x.Machines)).Distinct())
            {
                var machine = new MachineResource {
                    Name = machineName
                };

                foreach (var machineRole in _model.Roles.Where(x => x.Machines.Contains(machineName)).Select(r => r.Name).ToList())
                {
                    machine.Roles.Add(machineRole);
                }
                _repository.Machines.Create(machine);
            }
        }
        public void Uploader_should_throw_meaningful_exception_if_cannot_find_references_from_variable_scope(VariableScopeType scopeType, string resourceTypeName)
        {
            var octopusRepository = new FakeOctopusRepository();
            var uploader          = new ModelUploader(octopusRepository);

            var referenceName = "ref1";

            var variable = new Variable("var1", true, false, "val1", new Dictionary <VariableScopeType, IEnumerable <ElementReference> > {
                { scopeType, new[] { new ElementReference(referenceName) } }
            }, null);

            var model = CreateProjectModel("lifecycle", "group", variable);

            octopusRepository.Lifecycles.Create(new LifecycleResource {
                Name = "lifecycle"
            });
            octopusRepository.ProjectGroups.Create(new ProjectGroupResource {
                Name = "group"
            });

            var ex = Assert.Throws <KeyNotFoundException>(() => uploader.UploadModel(model));

            Assert.That(ex.Message, Is.EqualTo($"{resourceTypeName} with name '{referenceName}' not found."));
        }
 public void SetUp()
 {
     _repository = new FakeOctopusRepository();
     _downloader = new ModelDownloader(_repository, new NullLoggerFactory());
     _uploader   = new ModelUploader(_repository, new NullLoggerFactory());
 }
示例#5
0
 public void SetUp()
 {
     _repository = new FakeOctopusRepository();
     _downloader = new ModelDownloader(_repository);
     _uploader   = new ModelUploader(_repository);
 }