private void WriteCharacterWeapon(CharacterShared value) { Write(value.WeaponItem.UpgradeLevel); Write(value.WeaponItem.PrototypeId); Write(byte.MinValue); Write(-1); }
public void WriteCharacter(CharacterShared character) { WriteCharacterMain(character); WriteCharacterWeapon(character); WriteCharacterFashion(character); WriteCharacterMeta(character); }
public void Test04_LoadCharacterForms() { Debug.WriteLine("Unit test initialized for: Test04_LoadCharacterForms()"); frmChummerMain frmOldMainForm = Program.MainForm; frmChummerMain frmTestForm = null; // Try-finally pattern necessary in order prevent weird exceptions from disposal of MdiChildren try { frmTestForm = new frmChummerMain(true) { WindowState = FormWindowState.Minimized, ShowInTaskbar = false // This lets the form be "shown" in unit tests (to actually have it show, ShowDialog() needs to be used, but that forces the test to be interactve) }; Program.MainForm = frmTestForm; // Set program Main form to Unit test version frmTestForm.Show(); // We don't actually want to display the main form, so Show() is used (ShowDialog() would actually display it). while (!frmTestForm.IsFinishedLoading) // Hacky, but necessary to get xUnit to play nice because it can't deal well with the dreaded WinForms + async combo { Thread.Sleep(Utils.DefaultSleepDuration); Application.DoEvents(); } foreach (FileInfo objFileInfo in TestFiles) { using (Character objCharacter = LoadCharacter(objFileInfo)) { try { using (CharacterShared frmCharacterForm = objCharacter.Created ? (CharacterShared) new frmCareer(objCharacter) : new frmCreate(objCharacter)) { frmCharacterForm.MdiParent = frmTestForm; frmCharacterForm.ShowInTaskbar = false; frmCharacterForm.WindowState = FormWindowState.Minimized; frmCharacterForm.Show(); } } catch (Exception e) { string strErrorMessage = "Exception while loading form for " + objFileInfo.FullName + ":"; strErrorMessage += Environment.NewLine + e; Debug.WriteLine(strErrorMessage); Console.WriteLine(strErrorMessage); Assert.Fail(strErrorMessage); } } } frmTestForm.Close(); } finally { frmTestForm?.Dispose(); } Program.MainForm = frmOldMainForm; }
private void WriteCharacterMain(CharacterShared value) { Write(value.Id); WriteByteLengthUnicodeString(value.Name); WriteHero(value.Hero); WriteCharacterAdvancement(value.Advancement); Write(value.Photo); Write(value.Appearance); Write(value.Level); Write(new byte[10]); }
public async Task LoadCharacter() { Settings.Default.SINnerUrl = "https://sinners.azurewebsites.net/"; Debug.WriteLine("Unit test initialized for: LoadCharacter()"); string path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; path = Path.Combine(path, "data"); DirectoryInfo d = new DirectoryInfo(path); //Assuming Test is your Folder FileInfo[] Files = d.GetFiles("*.chum5"); //Getting Text files foreach (FileInfo file in Files) { try { Debug.WriteLine("Loading: " + file.Name); using (Character c = await MainForm.LoadCharacter(file.FullName)) { if (c == null) { continue; } Debug.WriteLine("Character loaded: " + c.Name); using (CharacterShared frmCharacterForm = c.Created ? (CharacterShared) new frmCareer(c) : new frmCreate(c)) { frmCharacterForm.MdiParent = MainForm; frmCharacterForm.WindowState = FormWindowState.Minimized; frmCharacterForm.Show(); using (ucSINnersUserControl sINnersUsercontrol = new ucSINnersUserControl()) { var ce = await sINnersUsercontrol.SetCharacterFrom(frmCharacterForm); await Utils.PostSINnerAsync(ce); await Utils.UploadChummerFileAsync(ce); } frmCharacterForm.Close(); } } } catch (Exception e) { string msg = "Exception while loading " + file.FullName + ":"; msg += Environment.NewLine + e; Debug.Write(msg); throw; } } }
public CharacterExtended SetCharacterFrom(CharacterShared mySINner) { _mySINner = mySINner; TabSINnersBasic = new SINnersBasic(this); TabSINnersBasic.Visible = true; TabSINnersAdvanced = new SINnersAdvanced(this); TabSINnersAdvanced.Visible = true; MyCE = new CharacterExtended(mySINner.CharacterObject, null); MyCE.MySINnerFile.SiNnerMetaData.Tags = MyCE.PopulateTags(); MyCE.ZipFilePath = MyCE.PrepareModel(); InitializeComponent(); this.tabPageBasic.Controls.Add(TabSINnersBasic); this.tabPageAdvanced.Controls.Add(TabSINnersAdvanced); this.AutoSize = true; return(MyCE); }
public CharacterExtended SetCharacterFrom(CharacterShared mySINner) { InitializeComponent(); _mySINner = mySINner; if (PluginHandler.MyCharExtendedDic.ContainsKey(mySINner.CharacterObject.FileName)) { CharacterExtended outce; if (!PluginHandler.MyCharExtendedDic.TryGetValue(mySINner.CharacterObject.FileName, out outce)) { throw new ArgumentException("Could not get character from MyCharExtendedDic", nameof(mySINner)); } MyCE = outce; } else { MyCE = new CharacterExtended(mySINner.CharacterObject, null, PluginHandler.MySINnerLoading); MyCE.ZipFilePath = MyCE.PrepareModel(); } MyCE.MySINnerFile.SiNnerMetaData.Tags = MyCE.PopulateTags(); TabSINnersBasic = new SINnersBasic(this) { Visible = true }; TabSINnersAdvanced = new SINnersAdvanced(this); #if DEBUG TabSINnersAdvanced.Visible = true; #else TabSINnersAdvanced.Visible = false; #endif this.tabPageBasic.Controls.Add(TabSINnersBasic); this.tabPageAdvanced.Controls.Add(TabSINnersAdvanced); this.AutoSize = true; return(MyCE); }
public async Task Load4CharacterForms() { Debug.WriteLine("Unit test initialized for: Load4CharacterForms()"); frmChummerMain frmOldMainForm = Program.MainForm; using (frmChummerMain frmTestForm = new frmChummerMain(true) { WindowState = FormWindowState.Minimized, ShowInTaskbar = false // This lets the form be "shown" in unit tests (to actually have it show, ShowDialog() needs to be used) }) { Program.MainForm = frmTestForm; // Set program Main form to Unit test version frmTestForm.Show(); // We don't actually want to display the main form, so Show() is used (ShowDialog() would actually display it). foreach (FileInfo objFileInfo in TestFiles) { using (Character objCharacter = await LoadCharacter(objFileInfo)) { try { using (CharacterShared frmCharacterForm = objCharacter.Created ? (CharacterShared) new frmCareer(objCharacter) : new frmCreate(objCharacter)) { frmCharacterForm.MdiParent = frmTestForm; frmCharacterForm.WindowState = FormWindowState.Minimized; frmCharacterForm.Show(); } } catch (Exception e) { string strErrorMessage = "Exception while loading form for " + objFileInfo.FullName + ":"; strErrorMessage += Environment.NewLine + e; Debug.WriteLine(strErrorMessage); Console.WriteLine(strErrorMessage); Assert.Fail(strErrorMessage); } } } } Program.MainForm = frmOldMainForm; }
public async Task <CharacterExtended> SetCharacterFrom(CharacterShared mySINner) { InitializeComponent(); _mySINner = mySINner; //if (PluginHandler.MyCharExtendedDic.ContainsKey(mySINner.CharacterObject.FileName)) //{ // CharacterExtended outce; // if (!PluginHandler.MyCharExtendedDic.TryGetValue(mySINner.CharacterObject.FileName, out outce)) // { // throw new ArgumentException("Could not get character from MyCharExtendedDic", nameof(mySINner)); // } // MyCE = outce; //} //else //{ MyCE = new CharacterExtended(mySINner.CharacterObject, null, PluginHandler.MySINnerLoading); MyCE.ZipFilePath = await MyCE.PrepareModel(); //} MyCE.MySINnerFile.SiNnerMetaData.Tags = MyCE.PopulateTags(); TabSINnersBasic = new ucSINnersBasic(this) { Visible = true }; TabSINnersAdvanced = new ucSINnersAdvanced(this) { Visible = true }; this.tabPageBasic.Controls.Add(TabSINnersBasic); this.tabPageAdvanced.Controls.Add(TabSINnersAdvanced); this.AutoSize = true; return(MyCE); }
public void Load3CharacterForms() { Debug.WriteLine("Unit test initialized for: Load3CharacterForms()"); frmChummerMain frmOldMainForm = Program.MainForm; Program.MainForm = MainForm; // Set program Main form to Unit test version MainForm.Show(); // We don't actually want to display the main form, so Show() is used (ShowDialog() would actually display it). string strPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "TestFiles"); DirectoryInfo objPathInfo = new DirectoryInfo(strPath); //Assuming Test is your Folder FileInfo[] aobjFiles = objPathInfo.GetFiles("*.chum5"); //Getting Text files foreach (FileInfo objFileInfo in aobjFiles) { using (Character objCharacter = LoadCharacter(objFileInfo)) { try { using (CharacterShared frmCharacterForm = objCharacter.Created ? (CharacterShared) new frmCareer(objCharacter) : new frmCreate(objCharacter)) { frmCharacterForm.MdiParent = MainForm; frmCharacterForm.WindowState = FormWindowState.Minimized; frmCharacterForm.Show(); frmCharacterForm.Close(); } } catch (Exception e) { string strErrorMessage = "Exception while loading form for " + objFileInfo.FullName + ":"; strErrorMessage += Environment.NewLine + e; Debug.WriteLine(strErrorMessage); Console.WriteLine(strErrorMessage); Assert.Fail(strErrorMessage); } } } MainForm.Close(); Program.MainForm = frmOldMainForm; }
public async Task <CharacterExtended> SetCharacterFrom(CharacterShared mySINner) { InitializeComponent(); _mySINner = mySINner; MyCE = new CharacterExtended(mySINner.CharacterObject, null, PluginHandler.MySINnerLoading); MyCE.ZipFilePath = await MyCE.PrepareModel(); MyCE.MySINnerFile.SiNnerMetaData.Tags = MyCE.PopulateTags(); TabSINnersBasic = new ucSINnersBasic(this) { Visible = true }; TabSINnersAdvanced = new ucSINnersAdvanced(this) { Visible = true }; this.tabPageBasic.Controls.Add(TabSINnersBasic); this.tabPageAdvanced.Controls.Add(TabSINnersAdvanced); this.AutoSize = true; if ((ucSINnersOptions.UploadOnSave == true)) { try { mySINner.CharacterObject.OnSaveCompleted = null; mySINner.CharacterObject.OnSaveCompleted += PluginHandler.MyOnSaveUpload; } catch (Exception e) { System.Diagnostics.Trace.TraceInformation(e.ToString()); } } return(MyCE); }
public async Task <CharacterExtended> SetCharacterFrom(CharacterShared mySINner) { InitializeComponent(); _mySINner = mySINner ?? throw new ArgumentNullException(nameof(mySINner)); MyCE = new CharacterExtended(mySINner.CharacterObject, PluginHandler.MySINnerLoading); MyCE.ZipFilePath = await MyCE.PrepareModelAsync(); TabSINnersBasic = new ucSINnersBasic(this) { Visible = true }; TabSINnersAdvanced = new ucSINnersAdvanced(this) { Visible = true }; tabPageBasic.Controls.Add(TabSINnersBasic); tabPageAdvanced.Controls.Add(TabSINnersAdvanced); AutoSize = true; if (ucSINnersOptions.UploadOnSave) { try { if (await mySINner.CharacterObject.DoOnSaveCompletedAsync.RemoveAsync(PluginHandler.MyOnSaveUpload)) { await mySINner.CharacterObject.DoOnSaveCompletedAsync.AddAsync(PluginHandler.MyOnSaveUpload); } } catch (Exception e) { Log.Warn(e); } } //MyCE.MySINnerFile.SiNnerMetaData.Tags = MyCE.PopulateTags(); return(MyCE); }
private static CharacterExtended GetMyCe(Character input) { CharacterShared found = null; if (MainForm?.OpenCharacterForms != null) { foreach (CharacterShared a in (MainForm?.OpenCharacterForms)) { if (a?.CharacterObject != input) { continue; } found = a; break; } } if (found == null) { return(null); } TabPage sinnertab = null; TabControl.TabPageCollection myCollection = null; switch (found) { case frmCreate foundcreate: myCollection = foundcreate.TabCharacterTabs.TabPages; break; case frmCareer foundcareer: myCollection = foundcareer.TabCharacterTabs.TabPages; break; } if (myCollection == null) { return(null); } foreach (TabPage tab in myCollection) { if (tab.Name == "SINners") { sinnertab = tab; break; } } CharacterExtended ce; if (sinnertab == null) { ce = new CharacterExtended(input, null); } else { ucSINnersUserControl myUcSIN = null; foreach (ucSINnersUserControl ucSIN in sinnertab.Controls) { myUcSIN = ucSIN; break; } ce = myUcSIN == null ? new CharacterExtended(input, null) : myUcSIN.MyCE; } return(ce); }
public void Test06_LoadCharacterForms() { Debug.WriteLine("Unit test initialized for: Test06_LoadCharacterForms()"); ChummerMainForm frmOldMainForm = Program.MainForm; ChummerMainForm frmTestForm = null; // Try-finally pattern necessary in order prevent weird exceptions from disposal of MdiChildren try { frmTestForm = frmOldMainForm.DoThreadSafeFunc(() => new ChummerMainForm(true, true) { ShowInTaskbar = false // This lets the form be "shown" in unit tests (to actually have it show, ShowDialog() needs to be used, but that forces the test to be interactive) }); Program.MainForm = frmTestForm; // Set program Main form to Unit test version frmTestForm.DoThreadSafe(x => { x.Show(); // We don't actually want to display the main form, so Show() is used (ShowDialog() would actually display it). #if DEBUG x.SendToBack(); #endif }); while (!frmTestForm.IsFinishedLoading) // Hacky, but necessary to get xUnit to play nice because it can't deal well with the dreaded WinForms + async combo { Utils.SafeSleep(); } Debug.WriteLine("Main form loaded"); foreach (Character objCharacter in GetTestCharacters()) { string strFileName = Path.GetFileName(objCharacter.FileName) ?? LanguageManager.GetString("String_Unknown"); Debug.WriteLine("Checking " + strFileName); string strDummyFileName = Path.Combine(TestPathInfo.FullName, "(UnitTest05Dummy) " + Path.GetFileNameWithoutExtension(objCharacter.FileName) + ".txt"); using (File.Create(strDummyFileName, byte.MaxValue, FileOptions .DeleteOnClose)) // Create this so that we can track how far along the Unit Test is even if we don't have a debugger attached { try { bool blnFormClosed = false; // ReSharper disable once AccessToDisposedClosure CharacterShared frmCharacterForm = Program.MainForm.DoThreadSafeFunc( () => objCharacter.Created // ReSharper disable once AccessToDisposedClosure ? (CharacterShared) new CharacterCareer(objCharacter) // ReSharper disable once AccessToDisposedClosure : new CharacterCreate(objCharacter)); try { frmCharacterForm.DoThreadSafe(x => { x.FormClosed += (sender, args) => blnFormClosed = true; x.MdiParent = frmTestForm; x.ShowInTaskbar = false; x.Show(); // We don't actually want to display the main form, so Show() is used (ShowDialog() would actually display it). #if DEBUG x.SendToBack(); #endif }); while (!frmCharacterForm .IsFinishedInitializing) // Hacky, but necessary to get xUnit to play nice because it can't deal well with the dreaded WinForms + async combo { Utils.SafeSleep(); } } finally { try { frmCharacterForm.DoThreadSafe(x => x.Close()); while (!blnFormClosed) // Hacky, but necessary to get xUnit to play nice because it can't deal well with the dreaded WinForms + async combo { Utils.SafeSleep(); } } catch (ApplicationException e) { string strErrorMessage = "Encountered (non-fatal) exception while disposing of character form." + Environment.NewLine + e.Message; Debug.WriteLine(strErrorMessage); Console.WriteLine(strErrorMessage); Program.OpenCharacters.Remove(objCharacter); } catch (InvalidOperationException e) { string strErrorMessage = "Encountered (non-fatal) exception while disposing of character form." + Environment.NewLine + e.Message; Debug.WriteLine(strErrorMessage); Console.WriteLine(strErrorMessage); Program.OpenCharacters.Remove(objCharacter); } } } catch (Exception e) { string strErrorMessage = "Exception while loading form for " + strFileName + ":"; strErrorMessage += Environment.NewLine + e; Debug.WriteLine(strErrorMessage); Console.WriteLine(strErrorMessage); Assert.Fail(strErrorMessage); } } } } finally { try { frmTestForm?.DoThreadSafe(x => x.Close()); } catch (Exception e) { string strErrorMessage = "Encountered (non-fatal) exception while disposing of main form." + Environment.NewLine + e.Message; Debug.WriteLine(strErrorMessage); Console.WriteLine(strErrorMessage); Utils.BreakIfDebug(); } } Program.MainForm = frmOldMainForm; }
private void WriteCharacterFashion(CharacterShared value) {