コード例 #1
0
        public void DomainProjectsUseAllowedContexts()
        {
            var domainAssemblies = AssembliesFixture.GetDomainAssemblies();

            var allowedVmAssemblies = new[]
            {
                $"{FullDomainNs}.Contracts",
                $"{PackageNamingConstants.ROOT_NS}.Infrastructure.Bootstrap"
            };

            foreach (var domainAssembly in domainAssemblies)
            {
                var allowedNames =
                    PackageNamingConstants.BoundedContexts.Union(PackageNamingConstants.AllowedDomainPackages).ToArray();
                domainAssembly.AssertContextNameIsAllowed(allowedNames);
                var references = domainAssembly.GetReferencedAssemblies();

                var filtered = references
                               .Where(NotSystemDependency)
                               .Where(NotMicrosoftDependency)
                               .Where(p => NotDependency(p, PackageNamingConstants.SIMPLE_INJECTOR_NS))
                               .Where(p => NotDependency(p, PackageNamingConstants.AUTOMAPPER_NS))
                               .Where(p => NotDependency(p, PackageNamingConstants.AllowedLoggerReferences))
                               .Where(p => NotDependency(p, $"{PackageNamingConstants.ROOT_NS}.Infrastructure.Bootstrap"))
                               .Where(a => NotDependency(a, allowedVmAssemblies));

                FilterDomainFrameworkAssembly(ref filtered);

                filtered.Should().BeEmpty("{0} assembly should reference only allowed assemblies",
                                          domainAssembly.GetName().Name);
            }
        }
コード例 #2
0
        public void ApiProjectsUseAllowedContexts()
        {
            var apiAssemblies = AssembliesFixture.GetApiAssemblies();

            foreach (var apiAssembly in apiAssemblies)
            {
                apiAssembly.AssertContextNameIsAllowed(PackageNamingConstants.BoundedContexts);
            }
        }
コード例 #3
0
        public void InfrastructureProjectsUseAllowedContexts()
        {
            var infraAssemblies = AssembliesFixture.GetInfrastructureAssemblies();

            foreach (var infraAssembly in infraAssemblies)
            {
                var allowedNames = new List <string>();
                allowedNames.AddRange(PackageNamingConstants.BoundedContexts);
                allowedNames.AddRange(PackageNamingConstants.InfrastructureServices);

                infraAssembly.AssertContextNameIsAllowed(allowedNames);
            }
        }
コード例 #4
0
        public void ApiProjectsUseAllowedContexts()
        {
            var apiAssemblies = AssembliesFixture.GetApiAssemblies();

            foreach (var apiAssembly in apiAssemblies)
            {
                var allowedNames = new List <string>();
                allowedNames.AddRange(PackageNamingConstants.BoundedContexts);
                allowedNames.AddRange(PackageNamingConstants.ApiServices);

                apiAssembly.AssertContextNameIsAllowed(allowedNames);
            }
        }