public void GeneratePinsTest() { // arrange int nrOfPinsToGenerate = 1000; int nrOfDigits = 4; // act IPinGenerator pinGen = new PinGenerator(nrOfPinsToGenerate, nrOfDigits); var pins = pinGen.GeneratePins(); // assert Assert.IsTrue(!pins.Any(p => p.Length != 4)); foreach (int pin in pins.Select(s => int.Parse(s))) { int i = pin / 1000; int j = (pin - 1000 * i) / 100; int k = (pin - 1000 * i - 100 * j) / 10; int l = pin - 1000 * i - 100 * j - k * 10; Assert.IsTrue(i != j && i != k && i != l && j != k && j != l && k != l); Assert.IsTrue(i != j - 1 && j != k - 1 && k != l - 1); Assert.IsTrue((int)Math.Ceiling(Math.Log10(pin)) <= 4); } }
public void InvalidRangeTest() { // arrange int nrOfPinsToGenerate = 1001; int nrOfDigits = 4; // act IPinGenerator pinGen = new PinGenerator(nrOfPinsToGenerate, nrOfDigits); // assert is handled by the ExpectedException }
public async Task <IActionResult> AddOfficer(OfficerDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } User user = await _userManager.FindByEmailAsync(model.UserName); if (user != null) { return(BadRequest(ModelState)); } var now = DateTime.Now; user = new User() { SecurityStamp = Guid.NewGuid().ToString(), UserName = model.UserName, CreatedDate = now, LastModifiedDate = now }; Random rnd = new Random(); int num = rnd.Next(1, 9); string password = PinGenerator.RandomString(4) + "@" + num; var result = await _userManager.CreateAsync(user, password); await _userManager.AddToRoleAsync(user, "Medical Officer"); if (result.Succeeded) { var medical = new MedicalOfficer() { UserName = model.UserName, Firstname = model.Firstname, Lastname = model.Lastname, FacilityId = model.FacilityId, Department = model.Department, ContactNo = model.ContactNo, CreatedBy = model.CreatedBy, Created = DateTime.Now }; _db.Officers.Add(medical); if (await _db.SaveChangesAsync() > 0) { // SendSms(model.UserName, password, "Donor Trace", model.ContactNo); return(Ok()); } } return(BadRequest("Could not save officer")); }
public async Task <Buyer> RegisterUser(string email) { using (var uow = _dalfactory.GetUnitOfWork()) { var user = uow.Repository <Buyer>() .FirstOrDefault(u => u.Email.Equals(email, StringComparison.OrdinalIgnoreCase)); string pin; var client = new EmailService(); IdentityMessage message; if (user == null) { _logger.Info("User not found"); do { pin = PinGenerator.RandomString(4); }while (uow.Repository <Buyer>().Exist(u => u.Pin.Equals(pin))); user = new Buyer() { Balance = 0, Email = email, Pin = pin, IsDeleted = false }; message = new IdentityMessage() { Body = $"Hello. Your PIN is {pin}. Use this to shoping in {ConfigurationManager.AppSettings["CompanyName"]} SnackBar.", Subject = "New PIN", Destination = email }; user = uow.Repository <Buyer>().AddOrUpdate(user); uow.Save(); _logger.Info($"User Created with PIN = {user.Pin}"); } else { pin = user.Pin; message = new IdentityMessage() { Body = $"Hello. Your PIN is {pin}.", Subject = "Forgot PIN?", Destination = email }; _logger.Info("User Found"); } await client.SendAsync(message).ConfigureAwait(false); return(user); } }
public void PinShouldBeOf4Digits() { int pin = PinGenerator.NewFourDigitPin(); bool is4Digits = pin >= 1000 && pin <= 9999; Debug.Log("Pin: " + pin); Assert.IsTrue(is4Digits); Assert.AreNotEqual(_lastPin, pin); _lastPin = pin; }
/// <inheritdoc /> /// <inheritdoc /> public async Task <ResponseBase> CreateUser(string email, string pass, string displayName, string phone) { var request = new RegisterRequest(); request.DisplayName = displayName; request.Password = pass; request.Email = email; request.Phone = phone; request.DeviceId = "DeviceMobile" + PinGenerator.GeneratePin(); var responseData = new ResponseBase() { HasBeenSuccessful = false }; var result = await this._apiWrapper.CreateUser(request); string content = await result.Content.ReadAsStringAsync(); if (result.StatusCode == HttpStatusCode.OK) { try { var deserializedContent = JsonConvert.DeserializeObject <ResponseBase>(content); if (!deserializedContent.HasBeenSuccessful) { responseData.HasBeenSuccessful = false; responseData.Error = "Internal Server Error"; return(responseData); } responseData.HasBeenSuccessful = true; responseData.Error = null; return(responseData); } catch (Exception e) { Console.WriteLine(e.StackTrace); responseData.HasBeenSuccessful = false; responseData.Error = "Deserialization Error"; return(responseData); } } else { responseData.HasBeenSuccessful = false; responseData.Error = "Internal Error" + result.StatusCode.ToString();; return(responseData); } }
public void test() { //Arrange var repo = new PinGenRepoMock(); var generator = new PinGenerator(repo); generator._proposedPin = 1234; //Act var result = generator.GenerateNewTeamPin(new Team()); //Assert Assert.That(() => result != 1234); }
// Use this for initialization void Start() { /*foreach (EventPin pin in eventPins) * { * PlacePin(pin); * }*/ pincollection = PinGenerator.Load(Path.Combine(Application.dataPath, "./XML/pins.xml")); for (int i = 0; i < pincollection.Pins.Length; i++) { var generated_pin = pinPrefab; var pin = pincollection.Pins[i]; //var tempPin = (GameObject)Instantiate(generated_pin, new Vector3 (float.Parse(pin.pos_x), float.Parse(pin.pos_y), float.Parse(pin.pos_z)), Quaternion.identity); //tempPin.transform.parent = gameObject.transform; eventPins[0].SetCoordinates(float.Parse(pin.pos_x), float.Parse(pin.pos_y)); eventPins[0].GetComponent <EventPin>().title = pin.title; eventPins[0].GetComponent <EventPin>().description = pin.desc; eventPins[0].GetComponent <EventPin>().date = int.Parse(pin.year); PlacePin(eventPins[0]); } }
public void GeneratePinTest() { // arrange int nrOfPinsToGenerate = 1000; int nrOfDigits = 4; // act IPinGenerator pinGen = new PinGenerator(nrOfPinsToGenerate, nrOfDigits); // assert for (int p = 0; p < 99999; p++) { var pin = pinGen.GeneratePin(); int i = pin / 1000; int j = (pin - 1000 * i) / 100; int k = (pin - 1000 * i - 100 * j) / 10; int l = pin - 1000 * i - 100 * j - k * 10; Assert.IsTrue(i != j && i != k && i != l && j != k && j != l && k != l); Assert.IsTrue(i != j - 1 && j != k - 1 && k != l - 1); Assert.IsTrue((int)Math.Ceiling(Math.Log10(pin)) <= 4); } }