public void DeberiaDevolverExtensionesAutorizadasParaSesion_CuandoExtensionEsValidaParaSesion() { // Arrange var extensionesAutorizadas = Cualquiera.CreateMany <IExtension>(); var todasExtensiones = extensionesAutorizadas.Concat(Cualquiera.CreateMany <IExtension>()); var cargadorExtensiones = Substitute.For <ICargadorExtensiones>(); var autorizadorExtensiones = Substitute.For <IAutorizadorExtension>(); var agregadoTodasExtensiones = new AgregadoExtensiones(); agregadoTodasExtensiones.Registrar(todasExtensiones); cargadorExtensiones.Cargar(null).ReturnsForAnyArgs(agregadoTodasExtensiones); autorizadorExtensiones.Autorizar(null, null).ReturnsForAnyArgs(ci => { if (extensionesAutorizadas.Contains(ci.Arg <IExtension>())) { return(new AutorizacionExitosa()); } else { return(new AutorizacionFallida()); } }); var cargadorExtensionesAutorizadas = new CargadorExtensionesAutorizadas(cargadorExtensiones, autorizadorExtensiones); // Act var extensionesCargadas = cargadorExtensionesAutorizadas.Cargar(Cualquiera.Create <Sesion>()); // Assert CollectionAssert.AreEquivalent(extensionesAutorizadas, extensionesCargadas.Todas); }
public void Inicializar() { Cualquiera = new Fixture(); Cualquiera.Customize(new AutoNSubstituteCustomization()); AgregadoExtensiones = new AgregadoExtensiones(); }
public void DeberiaRegistrarTodasLasExtensionesPasadasAlConstructor() { var extensiones = GenerarMultiplesTiposExtensiones().SelectMany(t => t.Extensiones); var agregadoExtensiones = new AgregadoExtensiones(extensiones); CollectionAssert.AreEquivalent(extensiones, agregadoExtensiones); }
public AgregadoExtensiones Cargar(Sesion sesion) { var resultado = new AgregadoExtensiones(); foreach (var tipoExtension in TiposExtensiones) { resultado.Registrar(Contenedor.ResolveAll(tipoExtension).OfType <IExtension>()); } return(resultado); }