o_método_HasRead_deve_ir_chamando_o_mesmo_método_de_todos_as_instâncias_adicionados_até_retornar_true() { // Arrange, Given var multipleInput = new MultipleInput(); var input1 = Substitute.For <IInput>(); var input2 = Substitute.For <IInput>(); input2.HasRead().Returns(true); var input3 = Substitute.For <IInput>(); multipleInput.Add(input1); multipleInput.Add(input2); multipleInput.Add(input3); // Act, When multipleInput.HasRead(); // Assert, Then input1.Received(1).HasRead(); input2.Received(1).HasRead(); input3.Received(0).HasRead(); }
public void o_método_Read_deve_chamar_o_mesmo_método_da_primeira_instância_que_puder_responder() { // Arrange, Given var multipleInput = new MultipleInput(); var input1 = Substitute.For <IInput>(); var depoisDeQuantasTentativasHasReadRetornaTrue = new Random(this.Fixture <int>()).Next(3, 6); var input2Resposta = this.Fixture <string>(); var input2 = Substitute.For <IInput>(); input2.Read().Returns(input2Resposta); input2.HasRead().Returns(info => { depoisDeQuantasTentativasHasReadRetornaTrue--; return(depoisDeQuantasTentativasHasReadRetornaTrue < 0); }); var input3 = Substitute.For <IInput>(); multipleInput.Add(input1); multipleInput.Add(input2); multipleInput.Add(input3); // Act, When var resposta = multipleInput.Read(); // Assert, Then resposta.Should().Be(input2Resposta); }
o_método_HasRead_deve_chamar_o_mesmo_método_de_todos_as_instâncias_adicionados_caso_todas_sejam_false() { // Arrange, Given var multipleInput = new MultipleInput(); var input1 = Substitute.For <IInput>(); var input2 = Substitute.For <IInput>(); var input3 = Substitute.For <IInput>(); multipleInput.Add(input1); multipleInput.Add(input2); multipleInput.Add(input3); // Act, When multipleInput.HasRead(); // Assert, Then input1.Received(1).HasRead(); input2.Received(1).HasRead(); input3.Received(1).HasRead(); }