public void LoadSecretFromString() { GameSecret secret = new GameSecret(); secret.Load(DesiredSecretString); Assert.AreEqual(DesiredSecret, secret); }
public void LoadSecretFromBytes() { var secret = new GameSecret(); secret.Load(desiredSecretBytes, GameRegion.US); Assert.AreEqual(DesiredSecret, secret); }
public void TestHashCode() { var s1 = new GameSecret() { Hero = "Link", Child = "Pip", Animal = Animal.Ricky }; var s2 = new GameSecret() { Hero = "Link", Child = "Pip~", Animal = Animal.Ricky }; var s3 = new GameSecret() { Hero = "Link", Child = "Pip", Animal = Animal.None }; var s4 = new GameSecret() { Hero = "Link", Child = "Pip", Animal = Animal.Ricky }; // Because using mutable objects as a key is an awesome idea... var dict = new Dictionary <GameSecret, bool> { { s1, true }, { s2, true } }; Assert.That(dict, !Contains.Key(s3)); Assert.That(dict, Contains.Key(s4)); }
public void LoadSecretFromString_JP() { var secret = new GameSecret(); secret.Load(desiredSecretString_JP, GameRegion.JP); Assert.AreEqual(DesiredSecret_JP, secret); }
public void TestNotifyPropChanged() { bool hit = false; var g = new GameSecret(); g.PropertyChanged += (s, e) => { hit = true; }; g.GameID = 42; Assert.That(hit, Is.True); }
public void TestInvalidByteLoad() { var secret = new GameSecret(); Assert.That(() => secret.Load((byte[])null, GameRegion.US), Throws.TypeOf <SecretException>()); Assert.That(() => secret.Load(new byte[] { 0 }, GameRegion.US), Throws.TypeOf <SecretException>()); Assert.That(() => secret.Load("H~2:@ ←2♦yq GB3●( 6♥?↑b", GameRegion.US), Throws.TypeOf <InvalidChecksumException>()); Assert.That(() => secret.Load("L~2:N @bB↑& hmRh= HHHH↑", GameRegion.US), Throws.TypeOf <ArgumentException>()); }
public void LoadSecretFromString() { GameSecret secret = new GameSecret(); secret.Load(DesiredSecretString); Assert.AreEqual("Link", secret.Hero); Assert.AreEqual("Pip", secret.Child); Assert.AreEqual(Game.Ages, secret.TargetGame); Assert.AreEqual(14129, secret.GameID); Assert.AreEqual(Animal.Dimitri, secret.Animal); Assert.AreEqual(ChildBehavior.BouncyD, secret.Behavior); Assert.AreEqual(true, secret.IsLinkedGame); Assert.AreEqual(false, secret.IsHeroQuest); }
public void TestToString() { GameSecret secret = new GameSecret() { TargetGame = Game.Ages, GameID = 14129, Hero = "Link", Child = "Pip", Animal = Animal.Dimitri, Behavior = ChildBehavior.BouncyD, IsLinkedGame = true, IsHeroQuest = false }; Assert.AreEqual(DesiredSecretString, secret.ToString()); }
public void TestToBytes() { GameSecret secret = new GameSecret() { TargetGame = Game.Ages, GameID = 14129, Hero = "Link", Child = "Pip", Animal = Animal.Dimitri, Behavior = ChildBehavior.BouncyD, IsLinkedGame = true, IsHeroQuest = false }; Assert.AreEqual(DesiredSecretBytes, secret.ToBytes()); }
private void btnDone_Click(object sender, RoutedEventArgs e) { try { if (GameInfo == null) { GameInfo = new GameInfo() { Region = _region } } ; var trimmedData = data.Take(currentPic.Clamp(0, _secretLength)).ToArray(); switch (Mode) { case SecretType.Game: GameSecret gs = new GameSecret(); gs.Load(trimmedData, _region); gs.UpdateGameInfo(GameInfo); break; case SecretType.Ring: RingSecret rs = new RingSecret(); rs.Load(trimmedData, _region); rs.UpdateGameInfo(GameInfo, chkAppendRings.IsChecked == true); break; case SecretType.Memory: MemorySecret ms = new MemorySecret(); ms.Load(trimmedData, _region); // Now what? break; } this.Close(); } catch (SecretException ex) { MessageBox.Show(ex.Message, "Invalid Secret", MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
public void TestEquals() { GameSecret s2 = new GameSecret() { TargetGame = Game.Ages, GameID = 14129, Hero = "Link", Child = "Pip", Animal = Animal.Dimitri, Behavior = ChildBehavior.BouncyD, IsLinkedGame = true, IsHeroQuest = false, WasGivenFreeRing = true }; Assert.AreEqual(DesiredSecret, s2); }
public void TestEquals() { var s2 = new GameSecret() { Region = GameRegion.US, TargetGame = Game.Ages, GameID = 14129, Hero = "Link", Child = "Pip", Animal = Animal.Dimitri, Behavior = 4, IsLinkedGame = true, IsHeroQuest = false, WasGivenFreeRing = true }; Assert.AreEqual(DesiredSecret, s2); }
protected void OnButtonOkPressed(object sender, EventArgs e) { try { if (GameInfo == null) { GameInfo = new GameInfo(); } var trimmedData = data.Take(currentPic.Clamp(0, _secretLength)).ToArray(); switch (Mode) { case SecretType.Game: GameSecret gs = new GameSecret(_region); gs.Load(trimmedData); gs.UpdateGameInfo(GameInfo); break; case SecretType.Ring: RingSecret rs = new RingSecret(_region); rs.Load(trimmedData); rs.UpdateGameInfo(GameInfo, chkAppendRings.Active); break; case SecretType.Memory: MemorySecret ms = new MemorySecret(_region); ms.Load(trimmedData); // Now what? break; } this.Respond(ResponseType.Ok); } catch (InvalidSecretException ex) { MessageBox.Show(ex.Message, "Invalid Secret", ButtonsType.Ok, MessageType.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", ButtonsType.Ok, MessageType.Error); } }
public void TestLoadSlot3() { string tempFile = Path.GetTempFileName(); var asm = Assembly.GetExecutingAssembly(); using (Stream s = asm.GetManifestResourceStream("Zyrenth.Zora.Tests.TestSaves.Ages_JP.srm")) using (FileStream fs = File.OpenWrite(tempFile)) { s.CopyTo(fs); } GameInfo info = BatteryFileLoader.Load(tempFile, GameRegion.JP, BatteryFileLoader.Slot3Offset); Assert.IsNotNull(info); var gs = new GameSecret(); var test = new GameInfo(); gs.Load("かね69わ 4さをれか さ7ちわも るこぴりお", GameRegion.JP); gs.UpdateGameInfo(test); Assert.AreEqual(test, info); }
public void TestPalValidity() { var g1 = new GameSecret() { Hero = "Link~", Child = " ", Animal = Animal.Ricky }; var g2 = new GameSecret() { Hero = " ", Child = "Pip~", Animal = Animal.Ricky }; var g3 = new GameSecret() { Hero = "Link", Child = "Pip", Animal = Animal.None }; var g4 = new GameSecret() { Hero = "Link", Child = "Pip", Animal = Animal.Ricky }; Assert.That(g1.IsValidForPAL(), Is.False, "Hero check failed"); Assert.That(g2.IsValidForPAL(), Is.False, "Child check failed"); Assert.That(g3.IsValidForPAL(), Is.False, "Animal check failed"); Assert.That(g4.IsValidForPAL(), Is.True, "Both failed"); }
private void SetSecrets() { GameSecret gameSecret = new GameSecret(_info); if (_info.Region == GameRegion.US && !gameSecret.IsValidForPAL()) { palInfoLabel.Text = "Name has abnormal characters.\nPassword won't work on PAL."; } swGame.SetSecret(gameSecret); swRings.SetSecret(new RingSecret(_info)); if (_info.IsLinkedGame) { // Return secrets bool returnSecret = true; swMem1.SetSecret(new MemorySecret(_info, Memory.ClockShopKingZora, returnSecret)); swMem2.SetSecret(new MemorySecret(_info, Memory.GraveyardFairy, returnSecret)); swMem3.SetSecret(new MemorySecret(_info, Memory.SubrosianTroy, returnSecret)); swMem4.SetSecret(new MemorySecret(_info, Memory.DiverPlen, returnSecret)); swMem5.SetSecret(new MemorySecret(_info, Memory.SmithLibrary, returnSecret)); swMem6.SetSecret(new MemorySecret(_info, Memory.PirateTokay, returnSecret)); swMem7.SetSecret(new MemorySecret(_info, Memory.TempleMamamu, returnSecret)); swMem8.SetSecret(new MemorySecret(_info, Memory.DekuTingle, returnSecret)); swMem9.SetSecret(new MemorySecret(_info, Memory.BiggoronElder, returnSecret)); swMem10.SetSecret(new MemorySecret(_info, Memory.RuulSymmetry, returnSecret)); // Other-game secrets returnSecret = false; // swap the game for this secret GameInfo info2 = new GameInfo(); info2.GameID = _info.GameID; info2.Region = _info.Region; if (_info.Game == Game.Ages) { info2.Game = Game.Seasons; } else { info2.Game = Game.Ages; } swSec1.SetSecret(new MemorySecret(info2, Memory.ClockShopKingZora, returnSecret)); swSec2.SetSecret(new MemorySecret(info2, Memory.GraveyardFairy, returnSecret)); swSec3.SetSecret(new MemorySecret(info2, Memory.SubrosianTroy, returnSecret)); swSec4.SetSecret(new MemorySecret(info2, Memory.DiverPlen, returnSecret)); swSec5.SetSecret(new MemorySecret(info2, Memory.SmithLibrary, returnSecret)); swSec6.SetSecret(new MemorySecret(info2, Memory.PirateTokay, returnSecret)); swSec7.SetSecret(new MemorySecret(info2, Memory.TempleMamamu, returnSecret)); swSec8.SetSecret(new MemorySecret(info2, Memory.DekuTingle, returnSecret)); swSec9.SetSecret(new MemorySecret(info2, Memory.BiggoronElder, returnSecret)); swSec10.SetSecret(new MemorySecret(info2, Memory.RuulSymmetry, returnSecret)); } if (_info.Game == Game.Ages) { lblMem1.Text = "Clock Shop"; lblMem2.Text = "Graveyard"; lblMem3.Text = "Subrosian"; lblMem4.Text = "Diver"; lblMem5.Text = "Smith"; lblMem6.Text = "Pirate"; lblMem7.Text = "Temple"; lblMem8.Text = "Deku"; lblMem9.Text = "Biggoron"; lblMem10.Text = "Ruul"; } else { lblMem1.Text = "King Zora"; lblMem2.Text = "Fairy"; lblMem3.Text = "Troy"; lblMem4.Text = "Plen"; lblMem5.Text = "Library"; lblMem6.Text = "Tokay"; lblMem7.Text = "Mamamu"; lblMem8.Text = "Tingle"; lblMem9.Text = "Elder"; lblMem10.Text = "Symmetry"; } }
public void LoadFromGameInfo() { var secret = new GameSecret(GameInfoTest.DesiredInfo); Assert.AreEqual(DesiredSecret, secret); }
public void LoadFromGameInfo() { GameSecret secret = new GameSecret(); secret.Load(GameInfoTest.DesiredInfo); Assert.AreEqual(DesiredSecret, secret); }
public void LoadSecretFromBytes() { GameSecret secret = new GameSecret(); secret.Load(DesiredSecretBytes); Assert.AreEqual(DesiredSecret, secret); }