How to use Strings class of org.testng.util package

Best Testng code snippet using org.testng.util.Strings

Source:ApiTestBase.java Github

copy

Full Screen

1package com.openmatics.test.functional;23import com.google.common.base.Strings;4import com.openmatics.testinstrumentation.automotive.AutomotiveInstrumentation;5import com.openmatics.testinstrumentation.platform.EnvironmentConfiguration;6import com.openmatics.testinstrumentation.platform.PlatformInstrumentation;7import com.openmatics.testinstrumentation.platform.service.global.clientmanagement.model.CmsClientTemplate;8import com.openmatics.testinstrumentation.utils.selenium.ISeleniumService;9import com.openmatics.testinstrumentation.utils.selenium.SeleniumChromeService;10import org.testng.annotations.AfterClass;11import org.testng.annotations.BeforeClass;12import org.testng.annotations.Optional;13import org.testng.annotations.Parameters;1415import java.io.File;16import java.util.HashMap;17import java.util.Map;181920public class ApiTestBase {2122 private static Map<String, PlatformInstrumentation> platformInstrumentationsList = new HashMap<>();23 private AutomotiveInstrumentation automotiveInstrumentation = null;24 private ISeleniumService seleniumService = null;25 protected PlatformInstrumentation platformInstrumentation = null;26 protected String envKey;2728 public ApiTestBase() {29 }3031 public ApiTestBase(String envKey, String clientId, String clientSuffix) throws Exception {32 init(envKey, clientId, clientSuffix);33 }3435 private void init(String envKey, String clientId, String clientSuffix) throws Exception {36 if (Strings.isNullOrEmpty(envKey)) throw new RuntimeException("Environment key is required.");37 if (!Strings.isNullOrEmpty(clientId)) {38 platformInstrumentation = getPlatformInstrumentation(envKey, clientId);39 } else if (!Strings.isNullOrEmpty(clientSuffix)) {40 CmsClientTemplate clientTemplate = new CmsClientTemplate(clientSuffix);41 platformInstrumentation = getPlatformInstrumentation(envKey, clientTemplate);42 } else {43 throw new RuntimeException("CmsClient suffix or client id is required.");44 }45 this.envKey = envKey;46 System.out.println("Test was init with this base parameters:");47 System.out.println(String.format("Environment key is: %s", envKey));48 System.out.println(String.format("CmsClient id is: %s", clientId));49 System.out.println(String.format("CmsClient suffix is: %s", clientSuffix));50 }5152 @BeforeClass()53 @Parameters({"envKey", "clientId", "clientSuffix"})54 public void beforeClassTestBase(@Optional("") String envKey, @Optional("") String clientId, @Optional("") String clientSuffix) throws Exception {55 // If platformInstrumentation is not null that class was initiated by constructor by factory class56 if (platformInstrumentation == null) {57 init(envKey, clientId, clientSuffix);58 }59 executeBeforeClass();60 }6162 private String getPlatformInstrumentationKey(String envKey, String key) {63 return String.format("%s/%s", envKey, key);64 }6566 private PlatformInstrumentation getPlatformInstrumentation(String envKey, CmsClientTemplate template) throws Exception {67 String dictionaryKey = getPlatformInstrumentationKey(envKey, template.getSuffix());68 if (platformInstrumentationsList.containsKey(dictionaryKey)) {69 return platformInstrumentationsList.get(dictionaryKey);70 }71 PlatformInstrumentation instrumentation = new PlatformInstrumentation(new EnvironmentConfiguration(envKey), template);72 platformInstrumentationsList.putIfAbsent(dictionaryKey, instrumentation);73 return instrumentation;74 }7576 private PlatformInstrumentation getPlatformInstrumentation(String envKey, String key) throws Exception {77 String dictionaryKey = getPlatformInstrumentationKey(envKey, key);78 if (platformInstrumentationsList.containsKey(dictionaryKey)) {79 return platformInstrumentationsList.get(dictionaryKey);80 }81 PlatformInstrumentation instrumentation = new PlatformInstrumentation(new EnvironmentConfiguration(envKey), key);82 platformInstrumentationsList.putIfAbsent(dictionaryKey, instrumentation);83 return instrumentation;84 }8586 protected void executeBeforeClass() throws Exception {87 }8889 protected void executeAfterClass() throws Exception {90 }919293 @AfterClass()94 public void afterClassTestBase() throws Exception {95 if (seleniumService != null) seleniumService.Close();96 executeAfterClass();97 }9899100 protected AutomotiveInstrumentation getAutomotiveInstr() {101 if (automotiveInstrumentation == null) {102 automotiveInstrumentation = new AutomotiveInstrumentation(platformInstrumentation.getEnvConf(),103 platformInstrumentation.getClientConf());104 }105 return automotiveInstrumentation;106 }107108109 protected ISeleniumService getSeleniumService() throws Exception {110 if (seleniumService == null) {111112 String remoteUrl = System.getProperty("remoteUrl");113 String webDriverPath = System.getProperty("webDriverPath");114 System.out.println("Property remoteUrl: " + remoteUrl);115 System.out.println("Property webDriverPath: " + webDriverPath);116117 if (org.testng.util.Strings.isNullOrEmpty(remoteUrl) != true) {118 seleniumService = SeleniumChromeService.getSeleniumChromeServiceWithAvailableRemoteDriver(remoteUrl, 600);119 } else if (org.testng.util.Strings.isNullOrEmpty(webDriverPath) != true) {120 seleniumService = new SeleniumChromeService(new File(webDriverPath));121 } else {122 throw new RuntimeException("Uri of web driver or selenium server not present");123 }124 }125 return seleniumService;126 }127128129} ...

Full Screen

Full Screen

Source:LeveldbDAO.java Github

copy

Full Screen

...5import org.iq80.leveldb.Options;6import org.iq80.leveldb.impl.Iq80DBFactory;7import org.slf4j.Logger;8import org.slf4j.LoggerFactory;9import org.testng.util.Strings;10import javax.annotation.PostConstruct;11import java.io.File;12import java.io.IOException;13import java.util.Map;14/**15 * @author ZhaoGao16 * @date 2020/7/8 - 19:42 - JavaProjects17 */18public class LeveldbDAO {19 //日志记录20 private Logger logger = LoggerFactory.getLogger(LeveldbDAO.class);21 //LevelDB的DB对象22 private DB db;23 @PostConstruct24 public void init() {25 try {26 DBFactory factory = new Iq80DBFactory();27 Options options = new Options();28 options.createIfMissing(true);29 //配置LeveDB存储目录30 String path = ".//leveldb";31 db = factory.open(new File(path), options);32 db.put("hello world".getBytes(), "tal tech".getBytes());33 } catch (IOException e) {34 e.printStackTrace();35 }36 }37 //存入数据或更改38 public void put(String key, String value) {39 if (Strings.isNullOrEmpty(key) || Strings.isNullOrEmpty(value)) {40 return;41 }42 db.put(Iq80DBFactory.bytes(key), Iq80DBFactory.bytes(value));43 }44 //获取数据45 public String get(String key) {46 if (Strings.isNullOrEmpty(key)) {47 return null;48 }49 byte[] valueBytes = db.get(Iq80DBFactory.bytes(key));50 return Iq80DBFactory.asString(valueBytes);51 }52 //删除数据53 public void delete(String key) {54 if (Strings.isNullOrEmpty(key)) {55 return;56 }57 db.delete(Iq80DBFactory.bytes(key));58 }59 //遍历所有入库数据60 public void traverseAllData() {61 DBIterator iterator = db.iterator();62 while (iterator.hasNext()) {63 //Map.Entry是Map一个内部接口,不用再费时间县取得key,value的set集合,再取Iterator64 Map.Entry<byte[], byte[]> next = iterator.next();65 String key = Iq80DBFactory.asString(next.getKey());66 String value = Iq80DBFactory.asString(next.getValue());67 logger.info("traverse all data, levelDb key =" + key + ";value = " + value);68 }...

Full Screen

Full Screen

Source:JoinToUsController.java Github

copy

Full Screen

...3import org.slf4j.Logger;4import org.slf4j.LoggerFactory;5import org.springframework.beans.factory.annotation.Autowired;6import org.springframework.web.bind.annotation.RequestMapping;7import org.testng.util.Strings;89import java.util.regex.Matcher;10import java.util.regex.Pattern;1112/**13 * @author ZhaoGao14 * @date 2020/8/15 - 18:24 - JavaProjects15 */16public class JoinToUsController {1718 protected static Logger logger =19 LoggerFactory.getLogger(JoinToUsController.class);2021 @Autowired22 private JoinToUsService joinToUsService;2324 @RequestMapping("/join")25 //String orgName: 机,String orgPhone:联系人手机号码 String orgRepresent:机构联系人26 public String join(String orgName, String orgPhone, String orgRepresent) {27 if (Strings.isNullOrEmpty(orgName) ||28 Strings.isNotNullAndNotEmpty(orgPhone) ||29 Strings.isNotNullAndNotEmpty(orgRepresent)) {30 return "请将机构名称,机构联系人,联系人手机号码完整输入";31 }3233 if(!isMobileOrPhone(orgPhone)) {34 return "联系人手机号码格式不正确";35 }3637 joinToUsService.join(orgName, orgPhone, orgRepresent);38 return "success";3940 }4142 //验证是否是有效的电话或手机43 private boolean isMobileOrPhone(String orgPhone) { ...

Full Screen

Full Screen

Source:JSONSerializer.java Github

copy

Full Screen

1package com.arun.framework.Serializer;2import org.testng.util.Strings;3import com.fasterxml.jackson.databind.ObjectMapper;4import com.arun.framework.Serializer.interfaces.Serializable;5public class JSONSerializer implements Serializable {6 static ObjectMapper jsonMapper = new ObjectMapper();7 /**8 * Converts a JSON string to POJO9 * 10 * @param json11 * - JSON string12 * @param type13 * - type of class with respect to POJO14 * @return15 * 16 * @throws Exception17 * 18 * @author Arun Baluni19 */20 public <T> T stringToPOJO(String json, Class<T> type) throws Exception {21 if (Strings.isNullOrEmpty(json)) {22 throw new Exception("Input json is empty or null");23 }24 25 return jsonMapper.readValue(json, type);26 }27}...

Full Screen

Full Screen

Source:WorkflowJobTest.java Github

copy

Full Screen

2import com.mvelyka.up42.api.client.AuthClient;3import com.mvelyka.up42.api.client.JobClient;4import org.testng.Assert;5import org.testng.annotations.Test;6import org.testng.util.Strings;7public class WorkflowJobTest {8 @Test9 public void getJobStatusTest() {10 AuthClient authClient = new AuthClient();11 String token = authClient.createToken();12 JobClient jobClient = new JobClient();13 String id = jobClient.createAndRunJob(token);14 String status = jobClient.getJobStatus(id, token);15 Assert.assertFalse(Strings.isNullOrEmpty(status));16 }17}...

Full Screen

Full Screen

Source:StringsTest.java Github

copy

Full Screen

1package com.jim.java8.guava;2import org.testng.util.Strings;3import java.sql.Wrapper;4import java.util.List;5import java.util.Objects;6/**7 * @author Jim8 * @date 2018/8/179 */10public class StringsTest {11 public static void main(String[] args) {12 System.out.println(Strings.escapeHtml("<HTML>"));13 System.out.println(Strings.getValueOrEmpty(null));14 System.out.println(Strings.isNotNullAndNotEmpty(null));15 System.out.println(Strings.isNotNullAndNotEmpty(""));16 }17}...

Full Screen

Full Screen

Source:Lambda.java Github

copy

Full Screen

1package Lambda.test;2//import org.testng.collections.Lists;3//import org.testng.util.Strings;4import java.util.stream.Stream;5/**6 * Created by simpletour_java on 2015/7/3.7 */8public class Lambda {9 public static void main(String... args){10 String[] array = {"a", "b", "c"};11// for(Integer i : Lists.newArrayList(1, 2, 3)){12//13//// Stream.of(array).map(item -> Strings.padEnd(item, i, '@')).forEach(System.out::println);14//15// }16 }17}...

Full Screen

Full Screen

Source:conn.java Github

copy

Full Screen

1package Selenium.connection;2import org.testng.util.Strings;3public class conn {4 public static void main(Strings[] args) {5 /*6 Connection con = DriverManager.getConnection(dbUrl,username,password);7 Class.forName("com.mysql.jdbc.Driver");8 Statement stmt = con.createStatement();9 stmt.executeQuery(select * from employee;);10 String getString()11 int getInt()12 double getDouble()13 absolute (int rowNumber)14 * */15 }16}...

Full Screen

Full Screen

Strings

Using AI Code Generation

copy

Full Screen

1String[] s = Strings.split("a,b,c", ",");2assert s.length == 3;3assert s[0].equals("a");4assert s[1].equals("b");5assert s[2].equals("c");6String[] s = Strings.split("a,b,c", ",");7assert s.length == 3;8assert s[0].equals("a");9assert s[1].equals("b");10assert s[2].equals("c");11String[] s = Strings.split("a,b,c", ",");12assert s.length == 3;13assert s[0].equals("a");14assert s[1].equals("b");15assert s[2].equals("c");16String[] s = Strings.split("a,b,c", ",");17assert s.length == 3;18assert s[0].equals("a");19assert s[1].equals("b");20assert s[2].equals("c");21String[] s = Strings.split("a,b,c", ",");22assert s.length == 3;23assert s[0].equals("a");24assert s[1].equals("b");25assert s[2].equals("c");26String[] s = Strings.split("a,b,c", ",");27assert s.length == 3;28assert s[0].equals("a");29assert s[1].equals("b");30assert s[2].equals("c");31String[] s = Strings.split("a,b,c", ",");32assert s.length == 3;33assert s[0].equals("a");34assert s[1].equals("b");35assert s[2].equals("c");36String[] s = Strings.split("a,b,c", ",");37assert s.length == 3;38assert s[0].equals("a");39assert s[1].equals("b");40assert s[2].equals("c");41String[] s = Strings.split("a,b,c", ",");42assert s.length == 3;

Full Screen

Full Screen

Strings

Using AI Code Generation

copy

Full Screen

1import org.testng.util.Strings;2String s = "Hello";3String s = "Hello";4String s = "Hello";5String s = "Hello";6String s = "Hello";7String s = "Hello";8String s = "Hello";9String s = "Hello";10String s = "Hello";11String s = "Hello";12String s = "Hello";13String s = "Hello";14String s = "Hello";15String s = "Hello";16String s = "Hello";17String s = "Hello";18String s = "Hello";19String s = "Hello";20String s = "Hello";21String s = "Hello";22String s = "Hello";23String s = "Hello";24String s = "Hello";25String s = "Hello";26String s = "Hello";27String s = "Hello";28String s = "Hello";29String s = "Hello";30String s = "Hello";31String s = "Hello";32String s = "Hello";33String s = "Hello";34String s = "Hello";35String s = "Hello";36String s = "Hello";37String s = "Hello";38String s = "Hello";39String s = "Hello";40String s = "Hello";41String s = "Hello";42String s = "Hello";43String s = "Hello";44String s = "Hello";45String s = "Hello";46String s = "Hello";47String s = "Hello";48String s = "Hello";49String s = "Hello";50String s = "Hello";51String s = "Hello";52String s = "Hello";53String s = "Hello";54String s = "Hello";55String s = "Hello";56String s = "Hello";57String s = "Hello";58String s = "Hello";59String s = "Hello";60String s = "Hello";61String s = "Hello";62String s = "Hello";63String s = "Hello";64String s = "Hello";65String s = "Hello";66String s = "Hello";67String s = "Hello";68String s = "Hello";69String s = "Hello";70String s = "Hello";71String s = "Hello";72String s = "Hello";73String s = "Hello";74String s = "Hello";75String s = "Hello";76String s = "Hello";77String s = "Hello";78String s = "Hello";79String s = "Hello";80String s = "Hello";81String s = "Hello";82String s = "Hello";83String s = "Hello";

Full Screen

Full Screen

Strings

Using AI Code Generation

copy

Full Screen

1import org.testng.util.Strings;2import org.testng.util.Strings;3Strings.isNullOrEmpty("string");4import org.testng.util.Strings;5Strings.isNullOrEmpty("string");6import org.testng.util.Strings;7Strings.isNullOrEmpty("string");8import org.testng.util.Strings;9Strings.isNullOrEmpty("string");10import org.testng.util.Strings;11Strings.isNullOrEmpty("string");12import org.testng.util.Strings;13Strings.isNullOrEmpty("string");14import org.testng.util.Strings;15Strings.isNullOrEmpty("string");

Full Screen

Full Screen

Strings

Using AI Code Generation

copy

Full Screen

1String[] strArray = {"a", "b", "c"};2String str = Strings.join(strArray).with(",");3System.out.println(str);4String[] strArray = {"a", "b", "c"};5String str = StringUtils.join(strArray, ",");6System.out.println(str);7String[] strArray = {"a", "b", "c"};8String str = StringUtils.join(strArray, ",");9System.out.println(str);10String[] strArray = {"a", "b", "c"};11String str = StringUtils.join(ArrayUtils.toObject(strArray), ",");12System.out.println(str);13String[] strArray = {"a", "b", "c"};14String str = StringUtils.join(ArrayUtils.toObject(strArray), ",");15System.out.println(str);16String[] strArray = {"a", "b", "c"};17String str = StringUtils.join(ArrayUtils.toObject(strArray), ",");18System.out.println(str);19String[] strArray = {"a", "b", "c"};20String str = StringUtils.join(ArrayUtils.toObject(strArray), ",");21System.out.println(str);22String[] strArray = {"a", "b", "c"};23String str = StringUtils.join(ArrayUtils.toObject(strArray), ",");24System.out.println(str);25String[] strArray = {"a", "b", "c"};26String str = StringUtils.join(ArrayUtils.toObject(strArray), ",");27System.out.println(str);

Full Screen

Full Screen

Strings

Using AI Code Generation

copy

Full Screen

1String testMethodName = Strings.join(2 Arrays.asList(Thread.currentThread().getStackTrace()),3 new Predicate<StackTraceElement>() {4 public boolean apply(StackTraceElement input) {5 return input.getMethodName().startsWith("test");6 }7 }8);9System.out.println(testMethodName);10String testMethodName = Strings.join(11 Arrays.asList(Thread.currentThread().getStackTrace()),12 new Predicate<StackTraceElement>() {13 public boolean apply(StackTraceElement input) {14 return input.getMethodName().startsWith("test");15 }16 }17);18System.out.println(testMethodName);

Full Screen

Full Screen
copy
1package com.arjunandroid.wifiscanner;23import android.app.Activity;4import android.content.BroadcastReceiver;5import android.content.Context;6import android.content.Intent;7import android.content.IntentFilter;8import android.net.wifi.ScanResult;9import android.net.wifi.WifiManager;10import android.os.Bundle;11import android.util.Log;12import android.view.View;13import android.widget.ArrayAdapter;14import android.widget.Button;15import android.widget.ListView;16import android.widget.TextView;17import android.widget.Toast;1819import java.util.ArrayList;20import java.util.List;2122public class WifiScanner extends Activity implements View.OnClickListener{232425 WifiManager wifi;26 ListView lv;27 Button buttonScan;28 int size = 0;29 List<ScanResult> results;3031 String ITEM_KEY = "key";32 ArrayList<String> arraylist = new ArrayList<>();33 ArrayAdapter adapter;3435 /* Called when the activity is first created. */36 @Override37 public void onCreate(Bundle savedInstanceState)38 {39 super.onCreate(savedInstanceState);40 getActionBar().setTitle("Widhwan Setup Wizard");4142 setContentView(R.layout.activity_wifi_scanner);4344 buttonScan = (Button) findViewById(R.id.scan);45 buttonScan.setOnClickListener(this);46 lv = (ListView)findViewById(R.id.wifilist);474849 wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);50 if (wifi.isWifiEnabled() == false)51 {52 Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled", Toast.LENGTH_LONG).show();53 wifi.setWifiEnabled(true);54 }55 this.adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,arraylist);56 lv.setAdapter(this.adapter);5758 scanWifiNetworks();59 }6061 public void onClick(View view)62 {63 scanWifiNetworks();64 }6566 private void scanWifiNetworks(){6768 arraylist.clear();69 registerReceiver(wifi_receiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));7071 wifi.startScan();7273 Log.d("WifScanner", "scanWifiNetworks");7475 Toast.makeText(this, "Scanning....", Toast.LENGTH_SHORT).show();7677 }7879 BroadcastReceiver wifi_receiver= new BroadcastReceiver()80 {8182 @Override83 public void onReceive(Context c, Intent intent)84 {85 Log.d("WifScanner", "onReceive");86 results = wifi.getScanResults();87 size = results.size();88 unregisterReceiver(this);8990 try91 {92 while (size >= 0)93 {94 size--;95 arraylist.add(results.get(size).SSID);96 adapter.notifyDataSetChanged();97 }98 }99 catch (Exception e)100 {101 Log.w("WifScanner", "Exception: "+e);102103 }104105106 }107 };108109}110
Full Screen

TestNG tutorial

TestNG is a Java-based open-source framework for test automation that includes various test types, such as unit testing, functional testing, E2E testing, etc. TestNG is in many ways similar to JUnit and NUnit. But in contrast to its competitors, its extensive features make it a lot more reliable framework. One of the major reasons for its popularity is its ability to structure tests and improve the scripts' readability and maintainability. Another reason can be the important characteristics like the convenience of using multiple annotations, reliance, and priority that make this framework popular among developers and testers for test design. You can refer to the TestNG tutorial to learn why you should choose the TestNG framework.

Chapters

  1. JUnit 5 vs. TestNG: Compare and explore the core differences between JUnit 5 and TestNG from the Selenium WebDriver viewpoint.
  2. Installing TestNG in Eclipse: Start installing the TestNG Plugin and learn how to set up TestNG in Eclipse to begin constructing a framework for your test project.
  3. Create TestNG Project in Eclipse: Get started with creating a TestNG project and write your first TestNG test script.
  4. Automation using TestNG: Dive into how to install TestNG in this Selenium TestNG tutorial, the fundamentals of developing an automation script for Selenium automation testing.
  5. Parallel Test Execution in TestNG: Here are some essential elements of parallel testing with TestNG in this Selenium TestNG tutorial.
  6. Creating TestNG XML File: Here is a step-by-step tutorial on creating a TestNG XML file to learn why and how it is created and discover how to run the TestNG XML file being executed in parallel.
  7. Automation with Selenium, Cucumber & TestNG: Explore for an in-depth tutorial on automation using Selenium, Cucumber, and TestNG, as TestNG offers simpler settings and more features.
  8. JUnit Selenium Tests using TestNG: Start running your regular and parallel tests by looking at how to run test cases in Selenium using JUnit and TestNG without having to rewrite the tests.
  9. Group Test Cases in TestNG: Along with the explanation and demonstration using relevant TestNG group examples, learn how to group test cases in TestNG.
  10. Prioritizing Tests in TestNG: Get started with how to prioritize test cases in TestNG for Selenium automation testing.
  11. Assertions in TestNG: Examine what TestNG assertions are, the various types of TestNG assertions, and situations that relate to Selenium automated testing.
  12. DataProviders in TestNG: Deep dive into learning more about TestNG's DataProvider and how to effectively use it in our test scripts for Selenium test automation.
  13. Parameterization in TestNG: Here are the several parameterization strategies used in TestNG tests and how to apply them in Selenium automation scripts.
  14. TestNG Listeners in Selenium WebDriver: Understand the various TestNG listeners to utilize them effectively for your next plan when working with TestNG and Selenium automation.
  15. TestNG Annotations: Learn more about the execution order and annotation attributes, and refer to the prerequisites required to set up TestNG.
  16. TestNG Reporter Log in Selenium: Find out how to use the TestNG Reporter Log and learn how to eliminate the need for external software with TestNG Reporter Class to boost productivity.
  17. TestNG Reports in Jenkins: Discover how to generate TestNG reports in Jenkins if you want to know how to create, install, and share TestNG reports in Jenkins.

Certification

You can push your abilities to do automated testing using TestNG and advance your career by earning a TestNG certification. Check out our TestNG certification.

YouTube

Watch this complete tutorial to learn how you can leverage the capabilities of the TestNG framework for Selenium automation testing.

Run Testng automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

...Most popular Stackoverflow questions on Strings

Test Your Web Or Mobile Apps On 3000+ Browsers

Signup for free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful