public void DisableUnapprovedClaimToChangeCharacterTest() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "test" }, }, _generator); ShouldBeTestExtensions.ShouldBe(mock.Character.JsonData, _original.Character.JsonData, "Adding claim should not modify any character fields"); mock.Character.Groups.Select(g => g.CharacterGroupId).ToList().ShouldBe( (IEnumerable <int>)_original.Character.Groups.Select(g => g.CharacterGroupId) .ToList(), "Adding claim should not modify any character groups"); ShouldBeTestExtensions.ShouldBe(claim.JsonData, $"{{\"{mock.CharacterField.ProjectFieldId}\":\"test\"}}"); }
public void SaveOnAddTest() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); // ReSharper disable once MustUseReturnValue FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "test" }, }, _generator); mock.Character.JsonData .ShouldBe(_original.Character.JsonData, "Adding claim should not modify any character fields"); mock.Character.Groups.Select(g => g.CharacterGroupId).ShouldBe( mock.Character.Groups.Select(g => g.CharacterGroupId), "Adding claim should not modify any character groups"); claim.JsonData.ShouldBe($"{{\"{mock.CharacterField.ProjectFieldId}\":\"test\"}}"); }
public void TestRecepientVariables() { var mock = new MockedProject(); var users = new[] { new RecepientData(mock.Player.GetDisplayName(), mock.Player.Email) }; var expected = JObject.Parse("{" + string.Join(", ", users.Select(r => $"\"{r.Email}\":{{\"name\":\"{r.DisplayName}\"}}")) + "}"); users.ToRecipientVariables().ShouldBe(expected); }
public void TestRecepientVariables() { var mock = new MockedProject(); var users = new[] { new MailRecipient(mock.Player) }; var actual = users.ToRecipientVariables(); var expected = JObject.Parse("{" + string.Join(", ", users.Select(r => $"\"{r.User.Email}\":{{\"name\":\"{r.User.DisplayName}\"}}")) + "}"); Assert.AreEqual(expected.ToString(), actual.ToString()); }
public void ShowPublicFieldToAnonEvenIfEditDisabled() { MockedProject.AssignFieldValues(Mock.Character, new FieldWithValue(Mock.PublicField, "1")); var vm = new CustomFieldsViewModel(currentUserId: null, character: Mock.Character, disableEdit: true); var publicField = vm.FieldById(Mock.PublicField.ProjectFieldId); publicField.ShouldNotBeNull(); publicField.CanView.ShouldBeTrue(); }
public void TryToChangeAnotherUserCharacter() { var mock = new MockedProject(); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, mock.Character, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "test" } }); }
public void TryToChangeMasterOnlyFieldOnAdd() { var mock = new MockedProject(); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, mock.CreateClaim(mock.Character, mock.Player), new Dictionary <int, string>() { { mock.MasterOnlyField.ProjectFieldId, "test" } }); }
public void HiddenFieldChangeFailedTest() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Group, mock.Player); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.HideForUnApprovedClaim.ProjectFieldId, "test" } }); }
public void ProperlyShowConditionalHeaderTest() { var mock = new MockedProject(); var claim = mock.CreateApprovedClaim(mock.Character, mock.Player); var vm = new CustomFieldsViewModel(mock.Player.UserId, claim); var characterField = vm.FieldById(mock.ConditionalHeader.ProjectFieldId); Assert.IsNotNull(characterField); Assert.IsTrue(characterField.CanView); Assert.IsNull(characterField.Value); Assert.IsTrue(characterField.CanEdit); }
public void MasterHiddenChangeTest() { var mock = new MockedProject(); FieldSaveHelper.SaveCharacterFields( mock.Master.UserId, mock.Character, new Dictionary <int, string>() { { mock.HideForUnApprovedClaim.ProjectFieldId, "test" }, { mock.CharacterField.ProjectFieldId, null } }); Assert.AreEqual($"{{\"{mock.HideForUnApprovedClaim.ProjectFieldId}\":\"test\",\"{mock.PublicField.ProjectFieldId}\":\"Public\"}}", mock.Character.JsonData); }
public void DoNotDiscloseOriginalFieldValuesOnAddTest() { var mock = new MockedProject(); var vm = new CustomFieldsViewModel(mock.Player.UserId, (IClaimSource)mock.Character); var characterField = vm.Field(mock.CharacterField); characterField.ShouldNotBeNull(); characterField.ShouldBeHidden(); characterField.ShouldNotHaveValue(); characterField.ShouldBeEditable(); }
public void DoNotDiscloseOriginalFieldValuesTest() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); var vm = new CustomFieldsViewModel(mock.Player.UserId, claim); var characterField = vm.Field(mock.CharacterField); _ = characterField.ShouldNotBeNull(); characterField.ShouldBeHidden(); characterField.ShouldNotHaveValue(); characterField.ShouldBeEditable(); }
public void DoNotDiscloseOriginalFieldValuesTest() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); var vm = new CustomFieldsViewModel(mock.Player.UserId, claim); var characterField = vm.FieldById(mock.CharacterField.ProjectFieldId); Assert.IsNotNull(characterField); Assert.IsFalse(characterField.CanView); Assert.IsNull(characterField.Value); Assert.IsTrue(characterField.CanEdit); }
public void TryToChangeAnotherUserCharacter() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); _ = Should.Throw <NoAccessToProjectException>(() => FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, mock.Character, new Dictionary <int, string?>() { { mock.CharacterField.ProjectFieldId, "test" }, }, _generator)); }
public void Initialize() { projectMock = new MockedProject(); allFieldsExceptMasterOnly = new[] { projectMock.CharacterField, projectMock.PublicField, projectMock.HideForUnApprovedClaim, projectMock.ConditionalField, projectMock.ConditionalHeader }; allFields = allFieldsExceptMasterOnly .Union(new[] { projectMock.MasterOnlyField }) .ToArray(); }
public void TryToChangeMasterOnlyFieldOnAdd() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); Should.Throw <NoAccessToProjectException>(() => FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, mock.CreateClaim(mock.Character, mock.Player), new Dictionary <int, string>() { { mock.MasterOnlyField.ProjectFieldId, "test" }, }, _generator)); }
public void ConditionalFieldChangeTestForGroup() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Group, mock.Player); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.ConditionalField.ProjectFieldId, "test" } }); Assert.AreEqual($"{{\"{mock.ConditionalField.ProjectFieldId}\":\"test\"}}", claim.JsonData); Assert.AreEqual(_original.Character.JsonData, mock.Character.JsonData, "Adding claim should not modify any character fields"); }
public void AllowShadowCharacterFieldsTest() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); claim.JsonData = $"{{\"{mock.CharacterField.ProjectFieldId}\":\"test\"}}"; var vm = new CustomFieldsViewModel(mock.Player.UserId, claim); var characterField = vm.FieldById(mock.CharacterField.ProjectFieldId); Assert.IsNotNull(characterField); Assert.IsFalse(characterField.CanView); Assert.AreEqual("test", characterField.Value); Assert.IsTrue(characterField.CanEdit); }
public void AllowShadowCharacterFieldsTest() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); MockedProject.AssignFieldValues(claim, new FieldWithValue(mock.CharacterField, "test")); var vm = new CustomFieldsViewModel(mock.Player.UserId, claim); var characterField = vm.FieldById(mock.CharacterField.ProjectFieldId); characterField.ShouldNotBeNull(); characterField.ShouldBeHidden(); characterField.Value.ShouldBe("test"); characterField.ShouldBeEditable(); }
public void HiddenFieldChangeFailedTest() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Group, mock.Player); Should.Throw <NoAccessToProjectException>(() => FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.HideForUnApprovedClaim.ProjectFieldId, "test" }, }, _generator)); }
public void ApprovedClaimChangeTest() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); claim.ClaimStatus = Claim.Status.Approved; FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "test" } }); Assert.AreEqual( $"{{\"{mock.CharacterField.ProjectFieldId}\":\"test\",\"{mock.PublicField.ProjectFieldId}\":\"Public\"}}", mock.Character.JsonData); Assert.AreEqual("{}", claim.JsonData); }
public void ApprovedClaimHiddenChangeTest() { var mock = new MockedProject(); var claim = mock.CreateApprovedClaim(mock.Character, mock.Player); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.HideForUnApprovedClaim.ProjectFieldId, "test" }, { mock.CharacterField.ProjectFieldId, null } }, generator); Assert.AreEqual( $"{{\"{mock.HideForUnApprovedClaim.ProjectFieldId}\":\"test\",\"{mock.PublicField.ProjectFieldId}\":\"Public\"}}", mock.Character.JsonData); Assert.AreEqual("{}", claim.JsonData); }
public void DisableUnapprovedClaimToChangeCharacterTest() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "test" } }); Assert.AreEqual(_original.Character.JsonData, mock.Character.JsonData, "Adding claim should not modify any character fields"); CollectionAssert.AreEqual( _original.Character.Groups.Select(g => g.CharacterGroupId).ToList(), mock.Character.Groups.Select(g => g.CharacterGroupId).ToList(), "Adding claim should not modify any character groups"); Assert.AreEqual($"{{\"{mock.CharacterField.ProjectFieldId}\":\"test\"}}", claim.JsonData); }
public void MasterHiddenChangeTest() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); var publicField = new FieldWithValue(mock.PublicField, "Public"); MockedProject.AssignFieldValues(mock.Character, publicField); FieldSaveHelper.SaveCharacterFields( mock.Master.UserId, mock.Character, new Dictionary <int, string>() { { mock.HideForUnApprovedClaim.ProjectFieldId, "test" }, { mock.CharacterField.ProjectFieldId, null }, }, _generator); mock.Character.FieldValuesShouldBe(new FieldWithValue(mock.HideForUnApprovedClaim, "test"), publicField); }
public void ApprovedClaimChangeTest() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); var claim = mock.CreateApprovedClaim(mock.Character, mock.Player); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "test" }, }, _generator); mock.Character.FieldValuesShouldBe(new FieldWithValue(mock.CharacterField, "test")); ShouldBeTestExtensions.ShouldBe(claim.JsonData, "{}"); }
public void SaveOnAddTest() { var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Character, mock.Player); // ReSharper disable once MustUseReturnValue FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "test" } }, generator); Assert.AreEqual(_original.Character.JsonData, mock.Character.JsonData, "Adding claim should not modify any character fields"); CollectionAssert.AreEqual( _original.Character.Groups.Select(g => g.CharacterGroupId).ToList(), mock.Character.Groups.Select(g => g.CharacterGroupId).ToList(), "Adding claim should not modify any character groups"); Assert.AreEqual($"{{\"{mock.CharacterField.ProjectFieldId}\":\"test\"}}", claim.JsonData); }
public void TryToSkipMandatoryField() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); mock.CharacterField.MandatoryStatus = MandatoryStatus.Required; var claim = mock.CreateApprovedClaim(mock.Character, mock.Player); var exception = Should.Throw <FieldRequiredException>(() => FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "" }, }, _generator)); exception.FieldName.ShouldBe(mock.CharacterField.FieldName); }
public void ConditionalFieldChangeTestForGroup() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); var claim = mock.CreateClaim(mock.Group, mock.Player); var conditionalField = mock.CreateConditionalField(); FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { conditionalField.ProjectFieldId, "test" }, }, _generator); ShouldBeTestExtensions.ShouldBe(claim.JsonData, $"{{\"{conditionalField.ProjectFieldId}\":\"test\"}}"); ShouldBeTestExtensions.ShouldBe(mock.Character.JsonData, _original.Character.JsonData, "Adding claim should not modify any character fields"); }
public void SkipOptionalField() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); mock.CharacterField.MandatoryStatus = MandatoryStatus.Optional; var claim = mock.CreateApprovedClaim(mock.Character, mock.Player); var exception = Should.NotThrow(() => FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string>() { { mock.CharacterField.ProjectFieldId, "" }, }, _generator)); mock.Character.JsonData.ShouldBe("{}"); }
public void ApprovedClaimHiddenChangeTest() { _original = new MockedProject(); _generator = new MockedFieldDefaultValueGenerator(); var mock = new MockedProject(); var claim = mock.CreateApprovedClaim(mock.Character, mock.Player); var publicField = new FieldWithValue(mock.PublicField, "Public"); MockedProject.AssignFieldValues(claim, publicField); _ = FieldSaveHelper.SaveCharacterFields( mock.Player.UserId, claim, new Dictionary <int, string?>() { { mock.HideForUnApprovedClaim.ProjectFieldId, "test" }, { mock.CharacterField.ProjectFieldId, null }, }, _generator); mock.Character.FieldValuesShouldBe(new FieldWithValue(mock.HideForUnApprovedClaim, "test"), publicField); ShouldBeTestExtensions.ShouldBe(claim.JsonData, "{}"); }