public void GenerateProxyTypes_ComponentDefinitionWithMissingConnection_ThrowsException() { var generator = new ProxyGenerator(); var componentDefinitions = new List <ComponentDefinition>(); var stubA = ProxyGeneratorTestsMissingConnectionStubA.GetComponentDefinition(); var stubB = ProxyGeneratorTestsMissingConnectionStubB.GetComponentDefinition(); componentDefinitions.Add(stubA); componentDefinitions.Add(stubB); Assert.ThrowsException <MissingConnectionException>(() => generator.GenerateProxyTypes(componentDefinitions)); }
public void GenerateProxyTypes_ValidComponentDefinitions_ProxyTypesAreCreated() { var generator = new ProxyGenerator(); var componentDefinitions = new List <ComponentDefinition>(); var signalStub = ProxyGeneratorTestsSimpleSignalStub.GetComponentDefinition(); var triggerStub = ProxyGeneratorTestsSimpleTriggerStub.GetComponentDefinition(); componentDefinitions.Add(signalStub); componentDefinitions.Add(triggerStub); Assert.IsNull(signalStub.ProxyType); Assert.IsNull(triggerStub.ProxyType); generator.GenerateProxyTypes(componentDefinitions); Assert.IsNotNull(signalStub.ProxyType); Assert.IsNotNull(triggerStub.ProxyType); }
public void Init() { Model model; using (var stream = new FileStream(_modelFilename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var textReader = new StreamReader(stream)) using (var jsonReader = new JsonTextReader(textReader)) { var serializer = new JsonSerializer(); model = serializer.Deserialize <Model>(jsonReader) ?? throw new InvalidModelException($"The model file \"{_modelFilename}\" cannot be parsed."); } foreach (var assemblyFilename in model.Assemblies) { if (AppDomain.CurrentDomain.GetAssemblies().Any(a => a.GetName().Name == assemblyFilename)) { continue; } if (File.Exists(assemblyFilename + ".dll")) { Assembly.LoadFrom(assemblyFilename + ".dll"); } else { Assembly.LoadFrom(assemblyFilename + ".so"); } } var componentDefinitionGenerator = new ComponentDefinitionGenerator(); _componentDefinitions = componentDefinitionGenerator.GenerateComponentDefinitions(model); var proxyGenerator = new ProxyGenerator(); proxyGenerator.GenerateProxyTypes(_componentDefinitions); foreach (var componentDefinition in _componentDefinitions) { CreateProxyInstancesRecursive(componentDefinition); } }