Пример #1
0
        public void GenerateBusinessObjectAssembly_RedirectsCallToValidAssemblyGenerator()
        {
            var clientAsmGen = Mock.Create<IAssemblyGenerator>();
            Mock.Arrange(() => clientAsmGen.GenerateBusinessObjectAssembly(Arg.IsAny<AssemblyGeneratorContext>())).Returns(new List<ErrorInfo>());
            var serverAsmGen = Mock.Create<IAssemblyGenerator>();
            Mock.Arrange(() => serverAsmGen.GenerateBusinessObjectAssembly(Arg.IsAny<AssemblyGeneratorContext>())).Returns(new List<ErrorInfo>());

            var generators = new[]
                                 {
                                     new Lazy<IAssemblyGenerator, IAssemblyGeneratorMetadata>(() => clientAsmGen, new AssemblyGeneratorMetadata(AssemblyType.Client, "SqlServer")),
                                     new Lazy<IAssemblyGenerator, IAssemblyGeneratorMetadata>(() => serverAsmGen, new AssemblyGeneratorMetadata(AssemblyType.Server, "SqlServer"))
                                 };

            var pb = new ProcessPublisher { AssemblyGenerators = generators };

            pb.GenerateBusinessObjectAssembly(new ProcessDefinition(string.Empty), AssemblyType.Client);

            Mock.Assert(() => clientAsmGen.GenerateBusinessObjectAssembly(Arg.Matches<AssemblyGeneratorContext>(m => m.AssemblyType == AssemblyType.Client)), Occurs.Once());
            Mock.Assert(() => serverAsmGen.GenerateBusinessObjectAssembly(Arg.Matches<AssemblyGeneratorContext>(m => m.AssemblyType == AssemblyType.Client)), Occurs.Never());

            pb.GenerateBusinessObjectAssembly(new ProcessDefinition(string.Empty), AssemblyType.Server);
            Mock.Assert(() => clientAsmGen.GenerateBusinessObjectAssembly(Arg.Matches<AssemblyGeneratorContext>(m => m.AssemblyType == AssemblyType.Client)), Occurs.Once());
            Mock.Assert(() => serverAsmGen.GenerateBusinessObjectAssembly(Arg.Matches<AssemblyGeneratorContext>(m => m.AssemblyType == AssemblyType.Client)), Occurs.Never()); // wrong db type

            pb.DatabaseType = "SqlServer";
            pb.GenerateBusinessObjectAssembly(new ProcessDefinition(string.Empty), AssemblyType.Server);
            Mock.Assert(() => clientAsmGen.GenerateBusinessObjectAssembly(Arg.Matches<AssemblyGeneratorContext>(m => m.AssemblyType == AssemblyType.Client)), Occurs.Once());
            Mock.Assert(() => serverAsmGen.GenerateBusinessObjectAssembly(Arg.Matches<AssemblyGeneratorContext>(m => m.AssemblyType == AssemblyType.Client)), Occurs.Never());
        }
Пример #2
0
        public void UpdateDatabase_RedirectsCallToDatabaseGenerator()
        {
            var sqlServerGen = Mock.Create<IDatabaseGenerator>();
            var oracleGen = Mock.Create<IDatabaseGenerator>();

            var generators = new[]
                                 {
                                     new Lazy<IDatabaseGenerator, IDatabaseGeneratorMetadata>(() => sqlServerGen, new DatabaseGeneratorMetadata("SqlServer")),
                                     new Lazy<IDatabaseGenerator, IDatabaseGeneratorMetadata>(() => oracleGen, new DatabaseGeneratorMetadata("Oracle"))
                                 };

            var pb = new ProcessPublisher { DatabaseGenerators = generators, DatabaseType = "SqlServer" };

            pb.UpdateDatabase(string.Empty, new ProcessDefinition(string.Empty));

            Mock.Assert(() => sqlServerGen.UpgradeDatabase(Arg.IsAny<ProcessDefinition>(), Arg.IsAny<bool>()), Occurs.Once());
            Mock.Assert(() => oracleGen.UpgradeDatabase(Arg.IsAny<ProcessDefinition>(), Arg.IsAny<bool>()), Occurs.Never());

            pb.DatabaseType = "Oracle";
            pb.UpdateDatabase(string.Empty, new ProcessDefinition(string.Empty));
            Mock.Assert(() => sqlServerGen.UpgradeDatabase(Arg.IsAny<ProcessDefinition>(), Arg.IsAny<bool>()), Occurs.Once());
            Mock.Assert(() => oracleGen.UpgradeDatabase(Arg.IsAny<ProcessDefinition>(), Arg.IsAny<bool>()), Occurs.Once());

            pb.DatabaseType = "Unknown";
            pb.UpdateDatabase(string.Empty, new ProcessDefinition(string.Empty));
            Mock.Assert(() => sqlServerGen.UpgradeDatabase(Arg.IsAny<ProcessDefinition>(), Arg.IsAny<bool>()), Occurs.Once());
            Mock.Assert(() => oracleGen.UpgradeDatabase(Arg.IsAny<ProcessDefinition>(), Arg.IsAny<bool>()), Occurs.Once());
        }
Пример #3
0
        public void GenerateBusinessObjectAssembly_ErrorListCanBeNull()
        {
            var serverAsmGen = Mock.Create<IAssemblyGenerator>();
            Mock.Arrange(() => serverAsmGen.GenerateBusinessObjectAssembly(Arg.IsAny<AssemblyGeneratorContext>())).DoNothing();

            var generators = new[] { new Lazy<IAssemblyGenerator, IAssemblyGeneratorMetadata>(() => serverAsmGen, new AssemblyGeneratorMetadata(AssemblyType.Server, "SqlServer")) };

            var pb = new ProcessPublisher { AssemblyGenerators = generators, DatabaseType = "SqlServer" };
            pb.GenerateBusinessObjectAssembly(new ProcessDefinition(string.Empty), AssemblyType.Server);
        }