You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
314 lines
9.7 KiB
314 lines
9.7 KiB
3 years ago
|
using Xunit;
|
||
|
using Exercism.Tests;
|
||
|
|
||
|
public class QuestLogicTests
|
||
|
{
|
||
|
[Fact]
|
||
|
[Task(1)]
|
||
|
public void Cannot_execute_fast_attack_if_knight_is_awake()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
Assert.False(QuestLogic.CanFastAttack(knightIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(1)]
|
||
|
public void Can_execute_fast_attack_if_knight_is_sleeping()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
Assert.True(QuestLogic.CanFastAttack(knightIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(2)]
|
||
|
public void Cannot_spy_if_everyone_is_sleeping()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = false;
|
||
|
Assert.False(QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(2)]
|
||
|
public void Can_spy_if_everyone_but_knight_is_sleeping()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = false;
|
||
|
Assert.True(QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(2)]
|
||
|
public void Can_spy_if_everyone_but_archer_is_sleeping()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = false;
|
||
|
Assert.True(QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(2)]
|
||
|
public void Can_spy_if_everyone_but_prisoner_is_sleeping()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = true;
|
||
|
Assert.True(QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(2)]
|
||
|
public void Can_spy_if_only_knight_is_sleeping()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = true;
|
||
|
Assert.True(QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(2)]
|
||
|
public void Can_spy_if_only_archer_is_sleeping()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = true;
|
||
|
Assert.True(QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(2)]
|
||
|
public void Can_spy_if_only_prisoner_is_sleeping()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = false;
|
||
|
Assert.True(QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(2)]
|
||
|
public void Can_spy_if_everyone_is_awake()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = true;
|
||
|
Assert.True(QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(3)]
|
||
|
public void Can_signal_prisoner_if_archer_is_sleeping_and_prisoner_is_awake()
|
||
|
{
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = true;
|
||
|
Assert.True(QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(3)]
|
||
|
public void Cannot_signal_prisoner_if_archer_is_awake_and_prisoner_is_sleeping()
|
||
|
{
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = false;
|
||
|
Assert.False(QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(3)]
|
||
|
public void Cannot_signal_prisoner_if_archer_and_prisoner_are_both_sleeping()
|
||
|
{
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = false;
|
||
|
Assert.False(QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(3)]
|
||
|
public void Cannot_signal_prisoner_if_archer_and_prisoner_are_both_awake()
|
||
|
{
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = true;
|
||
|
Assert.False(QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_everyone_is_awake_and_pet_dog_is_present()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = true;
|
||
|
var petDogIsPresent = true;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_everyone_is_awake_and_pet_dog_is_absent()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = true;
|
||
|
var petDogIsPresent = false;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Can_free_prisoner_if_everyone_is_asleep_and_pet_dog_is_present()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = false;
|
||
|
var petDogIsPresent = true;
|
||
|
Assert.True(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_everyone_is_asleep_and_pet_dog_is_absent()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = false;
|
||
|
var petDogIsPresent = false;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Can_free_prisoner_if_only_prisoner_is_awake_and_pet_dog_is_present()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = true;
|
||
|
var petDogIsPresent = true;
|
||
|
Assert.True(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Can_free_prisoner_if_only_prisoner_is_awake_and_pet_dog_is_absent()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = true;
|
||
|
var petDogIsPresent = false;
|
||
|
Assert.True(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_only_archer_is_awake_and_pet_dog_is_present()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = false;
|
||
|
var petDogIsPresent = true;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_only_archer_is_awake_and_pet_dog_is_absent()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = false;
|
||
|
var petDogIsPresent = false;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Can_free_prisoner_if_only_knight_is_awake_and_pet_dog_is_present()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = false;
|
||
|
var petDogIsPresent = true;
|
||
|
Assert.True(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_only_knight_is_awake_and_pet_dog_is_absent()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = false;
|
||
|
var petDogIsPresent = false;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_only_knight_is_asleep_and_pet_dog_is_present()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = true;
|
||
|
var petDogIsPresent = true;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_only_knight_is_asleep_and_pet_dog_is_absent()
|
||
|
{
|
||
|
var knightIsAwake = false;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = true;
|
||
|
var petDogIsPresent = false;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Can_free_prisoner_if_only_archer_is_asleep_and_pet_dog_is_present()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = true;
|
||
|
var petDogIsPresent = true;
|
||
|
Assert.True(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_only_archer_is_asleep_and_pet_dog_is_absent()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = false;
|
||
|
var prisonerIsAwake = true;
|
||
|
var petDogIsPresent = false;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_only_prisoner_is_asleep_and_pet_dog_is_present()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = false;
|
||
|
var petDogIsPresent = true;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
[Task(4)]
|
||
|
public void Cannot_free_prisoner_if_only_prisoner_is_asleep_and_pet_dog_is_absent()
|
||
|
{
|
||
|
var knightIsAwake = true;
|
||
|
var archerIsAwake = true;
|
||
|
var prisonerIsAwake = false;
|
||
|
var petDogIsPresent = false;
|
||
|
Assert.False(QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent));
|
||
|
}
|
||
|
}
|