public async Task ValidateCreate_ExistingNoUpdate() { const string keyName = "some key"; var userUid = Guid.NewGuid(); var prefKeyUid = Guid.NewGuid(); var userPrefDatabase = new UserPrefKeyDataModel { KeyName = keyName, PreferenceKeyUID = prefKeyUid.ToString(), PreferenceJson = "some json", SchemaVersion = "1.0" }; mockPrefRepo.Setup(p => p.GetUserPreference(userUid, keyName)) .ReturnsAsync(userPrefDatabase); var request = new UpsertUserPreferenceRequest { PreferenceJson = "some new json", PreferenceKeyUID = prefKeyUid, PreferenceKeyName = userPrefDatabase.KeyName, SchemaVersion = userPrefDatabase.SchemaVersion, TargetUserUID = userUid }; var controller = CreatePreferencesController(userUid.ToString(), false); var ex = await Assert.ThrowsAsync <ServiceException>(async() => await controller.CreateUserPreference(request)) as ServiceException; Assert.Equal(HttpStatusCode.BadRequest, ex.Code); var result = ex.GetResult; Assert.Equal(2013, result.Code); Assert.Equal("User preference already exists. ", result.Message); }
public async Task ValidateUserId_UserIdMatches() { const string keyName = "some key"; var userUid = Guid.NewGuid(); var userPrefDatabase = new UserPrefKeyDataModel { KeyName = keyName, PreferenceKeyUID = Guid.NewGuid().ToString(), PreferenceJson = "some json", SchemaVersion = "1.0" }; mockPrefRepo.Setup(p => p.GetUserPreference(userUid, keyName)) .ReturnsAsync(userPrefDatabase); var controller = CreatePreferencesController(userUid.ToString(), false); var result = await controller.GetUserPreferenceV1(keyName, userUid); Assert.NotNull(result); Assert.Equal(ContractExecutionStatesEnum.ExecutedSuccessfully, result.Code); Assert.Equal(ContractExecutionResult.DefaultMessage, result.Message); Assert.Equal(userPrefDatabase.KeyName, result.PreferenceKeyName); Assert.Equal(userPrefDatabase.PreferenceKeyUID, result.PreferenceKeyUID.ToString()); Assert.Equal(userPrefDatabase.PreferenceJson, result.PreferenceJson); Assert.Equal(userPrefDatabase.SchemaVersion, result.SchemaVersion); }
public void MapUserPrefDatabaseModelToResult() { var userPref = new UserPrefKeyDataModel { KeyName = "some preference key", PreferenceKeyUID = Guid.NewGuid().ToString(), PreferenceJson = "some json string here", SchemaVersion = "1.0" }; var result = AutoMapperUtility.Automapper.Map <UserPreferenceV1Result>(userPref); Assert.Equal(userPref.KeyName, result.PreferenceKeyName); Assert.Equal(userPref.PreferenceJson, result.PreferenceJson); Assert.Equal(userPref.PreferenceKeyUID, result.PreferenceKeyUID.ToString()); Assert.Equal(userPref.SchemaVersion, result.SchemaVersion); Assert.Equal(ContractExecutionStatesEnum.ExecutedSuccessfully, result.Code); Assert.Equal(ContractExecutionResult.DefaultMessage, result.Message); }
public async Task CreateUserPreferenceExecutor_HappyPath() { const string keyName = "some key"; var userUid = Guid.NewGuid(); var prefEvent = new CreateUserPreferenceEvent { PreferenceKeyName = keyName, PreferenceKeyUID = Guid.NewGuid(), UserUID = userUid, PreferenceJson = "some json", SchemaVersion = "1.0" }; mockPrefRepo.Setup(p => p.StoreEvent(prefEvent)) .ReturnsAsync(1); var userPref = new UserPrefKeyDataModel { KeyName = keyName, PreferenceKeyUID = prefEvent.PreferenceKeyUID.Value.ToString(), PreferenceJson = prefEvent.PreferenceJson, SchemaVersion = prefEvent.SchemaVersion }; mockPrefRepo.Setup(p => p.GetUserPreference(userUid, keyName)) .ReturnsAsync(userPref); var executor = RequestExecutorContainerFactory.Build <CreateUserPreferenceExecutor> (Logger, ServiceExceptionHandler, mockPrefRepo.Object); var result = await executor.ProcessAsync(prefEvent) as UserPreferenceV1Result; Assert.Equal(ContractExecutionStatesEnum.ExecutedSuccessfully, result.Code); Assert.Equal(ContractExecutionResult.DefaultMessage, result.Message); Assert.Equal(prefEvent.SchemaVersion, result.SchemaVersion); Assert.Equal(prefEvent.PreferenceJson, result.PreferenceJson); Assert.Equal(prefEvent.PreferenceKeyName, result.PreferenceKeyName); Assert.Equal(prefEvent.PreferenceKeyUID, result.PreferenceKeyUID); }